|
|
@@ -276,7 +276,12 @@ unset(_GR)
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
|
|
|
|
|
|
-set(_machine "/machine")
|
|
|
+cmake_policy(GET CMP0197 CMAKE_MSVC_CMP0197)
|
|
|
+if(CMAKE_MSVC_CMP0197 STREQUAL "NEW")
|
|
|
+ set(_machine "-machine")
|
|
|
+else()
|
|
|
+ set(_machine "/machine")
|
|
|
+endif()
|
|
|
|
|
|
# executable linker flags
|
|
|
set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
|
|
|
@@ -321,7 +326,9 @@ if(NOT WINDOWS_PHONE AND NOT WINDOWS_STORE AND NOT CMAKE_SYSTEM_NAME STREQUAL "W
|
|
|
endif()
|
|
|
|
|
|
foreach(t EXE SHARED MODULE)
|
|
|
- string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
|
|
|
+ if(NOT CMAKE_MSVC_CMP0197 STREQUAL "NEW")
|
|
|
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
|
|
|
+ endif()
|
|
|
if (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
|
|
|
string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " ${_Wl}/debug ${_Wl}/pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}")
|
|
|
string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " ${_Wl}/debug ${_Wl}/pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}")
|
|
|
@@ -340,11 +347,19 @@ if(CMAKE_SYSTEM_NAME STREQUAL "WindowsCE")
|
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "WindowsKernelModeDriver")
|
|
|
string(APPEND _PLATFORM_LINK_FLAGS " -subsystem:native -kernel -MANIFEST:NO")
|
|
|
endif()
|
|
|
+if(CMAKE_MSVC_CMP0197 STREQUAL "NEW")
|
|
|
+ string(APPEND _PLATFORM_LINK_FLAGS " ${_MACHINE_ARCH_FLAG}")
|
|
|
+endif()
|
|
|
|
|
|
+set(_PLATFORM_ARCHIVE_FLAGS "")
|
|
|
if((_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM64EC") OR (_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM64EC"))
|
|
|
set(_MACHINE_ARCH_FLAG " ${_Wl}${_machine}:ARM64X")
|
|
|
endif()
|
|
|
-string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
|
|
|
+if(CMAKE_MSVC_CMP0197 STREQUAL "NEW")
|
|
|
+ string(APPEND _PLATFORM_ARCHIVE_FLAGS " ${_MACHINE_ARCH_FLAG}")
|
|
|
+else()
|
|
|
+ string(APPEND CMAKE_STATIC_LINKER_FLAGS_INIT " ${_MACHINE_ARCH_FLAG}")
|
|
|
+endif()
|
|
|
unset(_MACHINE_ARCH_FLAG)
|
|
|
unset(_machine)
|
|
|
|
|
|
@@ -388,7 +403,7 @@ macro(__windows_compiler_msvc lang)
|
|
|
unset(_DLL_DRIVER)
|
|
|
|
|
|
set(CMAKE_${lang}_CREATE_SHARED_MODULE ${CMAKE_${lang}_CREATE_SHARED_LIBRARY})
|
|
|
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
|
|
|
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> ${CMAKE_CL_NOLOGO}${_PLATFORM_ARCHIVE_FLAGS} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
|
|
|
|
|
|
set(CMAKE_${lang}_COMPILE_OBJECT
|
|
|
"<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <INCLUDES> <FLAGS> /Fo<OBJECT> /Fd<TARGET_COMPILE_PDB>${_FS_${lang}} -c <SOURCE>${CMAKE_END_TEMP_FILE}")
|