mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 00:11:07 -06:00
CMakeFindBinUtils: Improve switch between MSVC- and GNU-like tools
The switch was not considering some languages, such as `ASM`. Instead of memorizing the list of languages in the condition, use a language specified by the includer. Fixes: #17510
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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})")
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user