diff options
author | Samir Benmendil <me@rmz.io> | 2020-10-12 12:24:08 +0100 |
---|---|---|
committer | Samir Benmendil <me@rmz.io> | 2021-01-27 13:26:40 +0000 |
commit | 288d456c2951013e423ae4107f0207ef4594bb45 (patch) | |
tree | 2be47187c3f0238a3d93951a0e7a96fa3f552a9c /cmake | |
parent | 3f4684f87da4303063a194c7340f1485d1752ae0 (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.cmake | 67 |
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}") - |