mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
Add a CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID variable
Compilers such as MSVC and IAR may have variants that target different architectures. We have been using a `MSVC_<LANG>_ARCHITECTURE_ID` variable to hold this information for MSVC. Add an alternative with a more general name (later we can port MSVC to it too). This additional information may be needed to generate proper invocations of the compiler based on its architecture variant.
This commit is contained in:
@@ -386,6 +386,7 @@ Variables for Languages
|
||||
/variable/CMAKE_LANG_ARCHIVE_FINISH
|
||||
/variable/CMAKE_LANG_COMPILER
|
||||
/variable/CMAKE_LANG_COMPILER_ABI
|
||||
/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID
|
||||
/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN
|
||||
/variable/CMAKE_LANG_COMPILER_ID
|
||||
/variable/CMAKE_LANG_COMPILER_LOADED
|
||||
|
||||
8
Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
Normal file
8
Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
Normal file
@@ -0,0 +1,8 @@
|
||||
CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID
|
||||
-------------------------------------
|
||||
|
||||
An internal variable subject to change.
|
||||
|
||||
This is used to identify the variant of a compiler based on its target
|
||||
architecture. For some compilers this is needed to determine the correct
|
||||
usage.
|
||||
@@ -9,6 +9,7 @@ set(CMAKE_ASM@ASM_DIALECT@_COMPILER_LOADED 1)
|
||||
set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@")
|
||||
set(CMAKE_ASM@ASM_DIALECT@_COMPILER_VERSION "@_CMAKE_ASM_COMPILER_VERSION@")
|
||||
set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@")
|
||||
@_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID@
|
||||
|
||||
set(CMAKE_ASM@ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
set(CMAKE_ASM@ASM_DIALECT@_LINKER_PREFERENCE 0)
|
||||
|
||||
@@ -12,6 +12,7 @@ set(CMAKE_C11_COMPILE_FEATURES "@CMAKE_C11_COMPILE_FEATURES@")
|
||||
set(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@")
|
||||
set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@")
|
||||
set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@")
|
||||
@_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID@
|
||||
@SET_MSVC_C_ARCHITECTURE_ID@
|
||||
@SET_CMAKE_XCODE_CURRENT_ARCH@
|
||||
set(CMAKE_AR "@CMAKE_AR@")
|
||||
|
||||
@@ -13,6 +13,7 @@ set(CMAKE_CXX17_COMPILE_FEATURES "@CMAKE_CXX17_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@")
|
||||
set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@")
|
||||
set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@")
|
||||
@_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID@
|
||||
@SET_MSVC_CXX_ARCHITECTURE_ID@
|
||||
@SET_CMAKE_XCODE_CURRENT_ARCH@
|
||||
set(CMAKE_AR "@CMAKE_AR@")
|
||||
|
||||
@@ -170,6 +170,13 @@ foreach(_var
|
||||
set(_CMAKE_ASM_${_var} "${CMAKE_ASM${ASM_DIALECT}_${_var}}")
|
||||
endforeach()
|
||||
|
||||
if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
|
||||
set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID
|
||||
"set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID})")
|
||||
else()
|
||||
set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID "")
|
||||
endif()
|
||||
|
||||
# configure variables set in this file for fast reload later on
|
||||
configure_file(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
|
||||
${CMAKE_PLATFORM_INFO_DIR}/CMakeASM${ASM_DIALECT}Compiler.cmake @ONLY)
|
||||
|
||||
@@ -170,6 +170,13 @@ set(_CMAKE_PROCESSING_LANGUAGE "C")
|
||||
include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL)
|
||||
unset(_CMAKE_PROCESSING_LANGUAGE)
|
||||
|
||||
if(CMAKE_C_COMPILER_ARCHITECTURE_ID)
|
||||
set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID
|
||||
"set(CMAKE_C_COMPILER_ARCHITECTURE_ID ${CMAKE_C_COMPILER_ARCHITECTURE_ID})")
|
||||
else()
|
||||
set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID "")
|
||||
endif()
|
||||
|
||||
if(MSVC_C_ARCHITECTURE_ID)
|
||||
set(SET_MSVC_C_ARCHITECTURE_ID
|
||||
"set(MSVC_C_ARCHITECTURE_ID ${MSVC_C_ARCHITECTURE_ID})")
|
||||
|
||||
@@ -165,6 +165,13 @@ set(_CMAKE_PROCESSING_LANGUAGE "CXX")
|
||||
include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL)
|
||||
unset(_CMAKE_PROCESSING_LANGUAGE)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
|
||||
set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID
|
||||
"set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID})")
|
||||
else()
|
||||
set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID "")
|
||||
endif()
|
||||
|
||||
if(MSVC_CXX_ARCHITECTURE_ID)
|
||||
set(SET_MSVC_CXX_ARCHITECTURE_ID
|
||||
"set(MSVC_CXX_ARCHITECTURE_ID ${MSVC_CXX_ARCHITECTURE_ID})")
|
||||
|
||||
@@ -102,6 +102,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
|
||||
set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
|
||||
set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
|
||||
set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
|
||||
set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
|
||||
PARENT_SCOPE)
|
||||
set(CMAKE_${lang}_XCODE_CURRENT_ARCH "${CMAKE_${lang}_XCODE_CURRENT_ARCH}" PARENT_SCOPE)
|
||||
@@ -576,6 +577,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
|
||||
if(COMPILER_ID AND NOT COMPILER_ID_TWICE)
|
||||
set(CMAKE_${lang}_COMPILER_ID "${COMPILER_ID}")
|
||||
set(CMAKE_${lang}_PLATFORM_ID "${PLATFORM_ID}")
|
||||
set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
|
||||
set(MSVC_${lang}_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
|
||||
set(CMAKE_${lang}_COMPILER_VERSION "${COMPILER_VERSION}")
|
||||
set(CMAKE_${lang}_SIMULATE_ID "${SIMULATE_ID}")
|
||||
@@ -625,6 +627,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
|
||||
# Return the information extracted.
|
||||
set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
|
||||
set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
|
||||
set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
|
||||
set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
|
||||
PARENT_SCOPE)
|
||||
set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE)
|
||||
|
||||
@@ -261,6 +261,13 @@ set(_CMAKE_PROCESSING_LANGUAGE "Fortran")
|
||||
include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL)
|
||||
unset(_CMAKE_PROCESSING_LANGUAGE)
|
||||
|
||||
if(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID)
|
||||
set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
|
||||
"set(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID ${CMAKE_Fortran_COMPILER_ARCHITECTURE_ID})")
|
||||
else()
|
||||
set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID "")
|
||||
endif()
|
||||
|
||||
if(MSVC_Fortran_ARCHITECTURE_ID)
|
||||
set(SET_MSVC_Fortran_ARCHITECTURE_ID
|
||||
"set(MSVC_Fortran_ARCHITECTURE_ID ${MSVC_Fortran_ARCHITECTURE_ID})")
|
||||
|
||||
@@ -6,6 +6,7 @@ set(CMAKE_Fortran_COMPILER_WRAPPER "@CMAKE_Fortran_COMPILER_WRAPPER@")
|
||||
set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@")
|
||||
set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@")
|
||||
set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@")
|
||||
@_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@
|
||||
@SET_MSVC_Fortran_ARCHITECTURE_ID@
|
||||
set(CMAKE_AR "@CMAKE_AR@")
|
||||
set(CMAKE_Fortran_COMPILER_AR "@CMAKE_Fortran_COMPILER_AR@")
|
||||
|
||||
Reference in New Issue
Block a user