From 288d456c2951013e423ae4107f0207ef4594bb45 Mon Sep 17 00:00:00 2001 From: Samir Benmendil Date: Mon, 12 Oct 2020 12:24:08 +0100 Subject: 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 --- cmake/language_support.cmake | 67 -------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 cmake/language_support.cmake (limited to 'cmake') 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}") - -- cgit v1.2.3