Browse Source

Merge topic 'checklanguage-honor-toolchain'

bddc54a37d CheckLanguage: Pass CMAKE_TOOLCHAIN_FILE to test project

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5384
Brad King 5 years ago
parent
commit
c05e561474

+ 6 - 0
Modules/CheckLanguage.cmake

@@ -68,6 +68,11 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
     else()
       set(_D_CMAKE_MAKE_PROGRAM "-DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM}")
     endif()
+    if(CMAKE_TOOLCHAIN_FILE)
+      set(_D_CMAKE_TOOLCHAIN_FILE "-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}")
+    else()
+      set(_D_CMAKE_TOOLCHAIN_FILE "")
+    endif()
     execute_process(
       WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}
       COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR}
@@ -75,6 +80,7 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
                                  -T "${CMAKE_GENERATOR_TOOLSET}"
                                  ${_D_CMAKE_GENERATOR_INSTANCE}
                                  ${_D_CMAKE_MAKE_PROGRAM}
+                                 ${_D_CMAKE_TOOLCHAIN_FILE}
       OUTPUT_VARIABLE _cl_output
       ERROR_VARIABLE _cl_output
       RESULT_VARIABLE _cl_result

+ 1 - 0
Tests/RunCMake/ToolchainFile/CheckLanguage-stdout.txt

@@ -0,0 +1 @@
+-- Looking for a C compiler - NOTFOUND

+ 4 - 0
Tests/RunCMake/ToolchainFile/CheckLanguage-toolchain.cmake

@@ -0,0 +1,4 @@
+get_property(in_try_compile GLOBAL PROPERTY IN_TRY_COMPILE)
+if(in_try_compile)
+  message(FATAL_ERROR "Toolchain file included")
+endif()

+ 2 - 0
Tests/RunCMake/ToolchainFile/CheckLanguage.cmake

@@ -0,0 +1,2 @@
+include(CheckLanguage)
+check_language(C)

+ 1 - 0
Tests/RunCMake/ToolchainFile/RunCMakeTest.cmake

@@ -7,6 +7,7 @@ endfunction()
 
 run_cmake_toolchain(CallEnableLanguage)
 run_cmake_toolchain(CallProject)
+run_cmake_toolchain(CheckLanguage)
 run_cmake_toolchain(FlagsInit)
 run_cmake_toolchain(LinkFlagsInit)