aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmake
diff options
context:
space:
mode:
authorGravatar Samir Benmendil <me@rmz.io>2020-10-12 12:24:08 +0100
committerGravatar Samir Benmendil <me@rmz.io>2021-01-27 13:26:40 +0000
commit288d456c2951013e423ae4107f0207ef4594bb45 (patch)
tree2be47187c3f0238a3d93951a0e7a96fa3f552a9c /cmake
parent3f4684f87da4303063a194c7340f1485d1752ae0 (diff)
Replace language_support module with builtin CheckLanguage
The workaround_9220 function was introduced a long time ago to workaround a CMake issue with enable_language(OPTIONAL). Since then CMake has clarified that the OPTIONAL keywords has not been implemented[0]. A CheckLanguage module is now provided with CMake to check if a language can be enabled. Use that instead. [0] https://cmake.org/cmake/help/v3.18/command/enable_language.html
Diffstat (limited to 'cmake')
-rw-r--r--cmake/language_support.cmake67
1 files changed, 0 insertions, 67 deletions
diff --git a/cmake/language_support.cmake b/cmake/language_support.cmake
deleted file mode 100644
index 591fca523..000000000
--- a/cmake/language_support.cmake
+++ /dev/null
@@ -1,67 +0,0 @@
-# cmake/modules/language_support.cmake
-#
-# Temporary additional general language support is contained within this
-# file.
-
-# This additional function definition is needed to provide a workaround for
-# CMake bug 9220.
-
-# On debian testing (cmake 2.6.2), I get return code zero when calling
-# cmake the first time, but cmake crashes when running a second time
-# as follows:
-#
-# -- The Fortran compiler identification is unknown
-# CMake Error at /usr/share/cmake-2.6/Modules/CMakeFortranInformation.cmake:7 (GET_FILENAME_COMPONENT):
-# get_filename_component called with incorrect number of arguments
-# Call Stack (most recent call first):
-# CMakeLists.txt:3 (enable_language)
-#
-# My workaround is to invoke cmake twice. If both return codes are zero,
-# it is safe to invoke enable_language(Fortran OPTIONAL)
-
-function(workaround_9220 language language_works)
- #message("DEBUG: language = ${language}")
- set(text
- "project(test NONE)
- cmake_minimum_required(VERSION 2.8.11)
- set (CMAKE_Fortran_FLAGS \"${CMAKE_Fortran_FLAGS}\")
- set (CMAKE_EXE_LINKER_FLAGS \"${CMAKE_EXE_LINKER_FLAGS}\")
- enable_language(${language})
- ")
- file(REMOVE_RECURSE ${CMAKE_BINARY_DIR}/language_tests/${language})
- file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/language_tests/${language})
- file(WRITE ${CMAKE_BINARY_DIR}/language_tests/${language}/CMakeLists.txt
- ${text})
- execute_process(
- COMMAND ${CMAKE_COMMAND} . -G "${CMAKE_GENERATOR}" -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/language_tests/${language}
- RESULT_VARIABLE return_code
- OUTPUT_QUIET
- ERROR_QUIET
- )
-
- if(return_code EQUAL 0)
- # Second run
- execute_process (
- COMMAND ${CMAKE_COMMAND} . -G "${CMAKE_GENERATOR}" -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/language_tests/${language}
- RESULT_VARIABLE return_code
- OUTPUT_QUIET
- ERROR_QUIET
- )
- if(return_code EQUAL 0)
- set(${language_works} ON PARENT_SCOPE)
- else()
- set(${language_works} OFF PARENT_SCOPE)
- endif()
- else()
- set(${language_works} OFF PARENT_SCOPE)
- endif()
-endfunction()
-
-# Temporary tests of the above function.
-#workaround_9220(CXX CXX_language_works)
-#message("CXX_language_works = ${CXX_language_works}")
-#workaround_9220(CXXp CXXp_language_works)
-#message("CXXp_language_works = ${CXXp_language_works}")
-