mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 08:20:18 -06:00
MSVC: Factor out link -machine flag name
This commit is contained in:
@@ -276,35 +276,37 @@ unset(_GR)
|
||||
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
|
||||
|
||||
set(_machine "/machine")
|
||||
|
||||
# executable linker flags
|
||||
set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
|
||||
# set the machine type
|
||||
if(MSVC_C_ARCHITECTURE_ID)
|
||||
if(MSVC_C_ARCHITECTURE_ID MATCHES "^ARMV.I")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:THUMB")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:THUMB")
|
||||
elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:ARM64")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:ARM64")
|
||||
elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64EC")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:ARM64EC")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:ARM64EC")
|
||||
elseif(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:ARM")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:ARM")
|
||||
else()
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:${MSVC_C_ARCHITECTURE_ID}")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:${MSVC_C_ARCHITECTURE_ID}")
|
||||
endif()
|
||||
elseif(MSVC_CXX_ARCHITECTURE_ID)
|
||||
if(MSVC_CXX_ARCHITECTURE_ID MATCHES "^ARMV.I")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:THUMB")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:THUMB")
|
||||
elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:ARM64")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:ARM64")
|
||||
elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64EC")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:ARM64EC")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:ARM64EC")
|
||||
elseif(_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:ARM")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:ARM")
|
||||
else()
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:${MSVC_CXX_ARCHITECTURE_ID}")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:${MSVC_CXX_ARCHITECTURE_ID}")
|
||||
endif()
|
||||
elseif(MSVC_Fortran_ARCHITECTURE_ID)
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}/machine:${MSVC_Fortran_ARCHITECTURE_ID}")
|
||||
set(_MACHINE_ARCH_FLAG "${_Wl}${_machine}:${MSVC_Fortran_ARCHITECTURE_ID}")
|
||||
endif()
|
||||
|
||||
# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtype
|
||||
@@ -340,11 +342,11 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "WindowsKernelModeDriver")
|
||||
endif()
|
||||
|
||||
if((_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64EC") OR (_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64EC"))
|
||||
string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_Wl}/machine:ARM64X")
|
||||
else()
|
||||
string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
|
||||
set(_MACHINE_ARCH_FLAG " ${_Wl}${_machine}:ARM64X")
|
||||
endif()
|
||||
string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
|
||||
unset(_MACHINE_ARCH_FLAG)
|
||||
unset(_machine)
|
||||
|
||||
cmake_policy(GET CMP0091 __WINDOWS_MSVC_CMP0091)
|
||||
if(__WINDOWS_MSVC_CMP0091 STREQUAL "NEW")
|
||||
|
||||
Reference in New Issue
Block a user