Browse Source

Merge topic 'CMakeFindBinUtils-improve-switch'

acb4cb95 CMakeFindBinUtils: Improve switch between MSVC- and GNU-like tools

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1533
Brad King 8 years ago
parent
commit
c2ea729c87

+ 1 - 1
Modules/CMakeDetermineASMCompiler.cmake

@@ -163,8 +163,8 @@ if (NOT _CMAKE_TOOLCHAIN_PREFIX)
 endif ()
 
 
-include(CMakeFindBinUtils)
 set(_CMAKE_PROCESSING_LANGUAGE "ASM")
+include(CMakeFindBinUtils)
 include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 

+ 1 - 1
Modules/CMakeDetermineCCompiler.cmake

@@ -166,8 +166,8 @@ if (CMAKE_CROSSCOMPILING  AND NOT _CMAKE_TOOLCHAIN_PREFIX)
 
 endif ()
 
-include(CMakeFindBinUtils)
 set(_CMAKE_PROCESSING_LANGUAGE "C")
+include(CMakeFindBinUtils)
 include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 

+ 3 - 0
Modules/CMakeDetermineCUDACompiler.cmake

@@ -73,7 +73,10 @@ if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
   CMAKE_DETERMINE_COMPILER_ID(CUDA CUDAFLAGS CMakeCUDACompilerId.cu)
 endif()
 
+set(_CMAKE_PROCESSING_LANGUAGE "CUDA")
 include(CMakeFindBinUtils)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
 if(MSVC_CUDA_ARCHITECTURE_ID)
   set(SET_MSVC_CUDA_ARCHITECTURE_ID
     "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})")

+ 1 - 1
Modules/CMakeDetermineCXXCompiler.cmake

@@ -164,8 +164,8 @@ if (CMAKE_CROSSCOMPILING  AND NOT  _CMAKE_TOOLCHAIN_PREFIX)
 
 endif ()
 
-include(CMakeFindBinUtils)
 set(_CMAKE_PROCESSING_LANGUAGE "CXX")
+include(CMakeFindBinUtils)
 include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 

+ 1 - 1
Modules/CMakeDetermineFortranCompiler.cmake

@@ -258,8 +258,8 @@ if (CMAKE_CROSSCOMPILING  AND NOT _CMAKE_TOOLCHAIN_PREFIX)
 
 endif ()
 
-include(CMakeFindBinUtils)
 set(_CMAKE_PROCESSING_LANGUAGE "Fortran")
+include(CMakeFindBinUtils)
 include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 

+ 2 - 0
Modules/CMakeDetermineSwiftCompiler.cmake

@@ -34,7 +34,9 @@ if (NOT _CMAKE_TOOLCHAIN_LOCATION)
   get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_Swift_COMPILER}" PATH)
 endif ()
 
+set(_CMAKE_PROCESSING_LANGUAGE "Swift")
 include(CMakeFindBinUtils)
+unset(_CMAKE_PROCESSING_LANGUAGE)
 
 # configure variables set in this file for fast reload later on
 configure_file(${CMAKE_ROOT}/Modules/CMakeSwiftCompiler.cmake.in

+ 3 - 10
Modules/CMakeFindBinUtils.cmake

@@ -20,16 +20,9 @@
 # on UNIX, cygwin and mingw
 
 # if it's the MS C/CXX compiler, search for link
-if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
-   OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
-   OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC"
-   OR "x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC"
-   OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC"
-   OR "x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC"
-   OR (CMAKE_HOST_WIN32 AND (
-        "x${CMAKE_C_COMPILER_ID}" STREQUAL "xPGI"
-         OR "x${CMAKE_Fortran_COMPILER_ID}" STREQUAL "xPGI"
-   ))
+if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC"
+   OR "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xMSVC"
+   OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xPGI")
    OR (CMAKE_GENERATOR MATCHES "Visual Studio"
        AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android"))