mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 08:20:18 -06:00
ASM: Hook up Windows-specific GNU/Clang compiler information modules
This allows building .s/.S assembly code, and makes sure that the `-fPIC` option isn't passed to the compiler (as it errors out on Clang and causes a loud warning on GCC).
This commit is contained in:
committed by
Brad King
parent
371e9e48a4
commit
6348ffb9e5
2
Modules/Platform/Windows-Clang-ASM.cmake
Normal file
2
Modules/Platform/Windows-Clang-ASM.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
include(Platform/Windows-Clang)
|
||||
__windows_compiler_clang(ASM)
|
||||
@@ -21,7 +21,9 @@ macro(__windows_compiler_clang_gnu lang)
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
|
||||
set(CMAKE_SHARED_MODULE_SUFFIX ".dll")
|
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
|
||||
set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
|
||||
if(NOT "${lang}" STREQUAL "ASM")
|
||||
set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
|
||||
endif()
|
||||
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a" ".lib")
|
||||
@@ -61,23 +63,25 @@ macro(__windows_compiler_clang_gnu lang)
|
||||
set(CMAKE_${lang}_LINK_EXECUTABLE
|
||||
"<CMAKE_${lang}_COMPILER> -fuse-ld=lld-link -nostartfiles -nostdlib <FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Xlinker /implib:<TARGET_IMPLIB> -Xlinker /pdb:<TARGET_PDB> -Xlinker /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> ${CMAKE_GNULD_IMAGE_VERSION} <LINK_LIBRARIES>")
|
||||
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmt)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -D_DLL -D_MT -Xclang --dependent-lib=msvcrt)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -D_DEBUG -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmtd)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd)
|
||||
if(NOT "${lang}" STREQUAL "ASM")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmt)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL -D_DLL -D_MT -Xclang --dependent-lib=msvcrt)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug -D_DEBUG -Xclang -flto-visibility-public-std -D_MT -Xclang --dependent-lib=libcmtd)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd)
|
||||
|
||||
if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
|
||||
set(__ADDED_FLAGS "")
|
||||
set(__ADDED_FLAGS_DEBUG "")
|
||||
else()
|
||||
set(__ADDED_FLAGS_DEBUG "-D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd")
|
||||
set(__ADDED_FLAGS "-D_DLL -D_MT -Xclang --dependent-lib=msvcrt")
|
||||
if(CMAKE_MSVC_RUNTIME_LIBRARY_DEFAULT)
|
||||
set(__ADDED_FLAGS "")
|
||||
set(__ADDED_FLAGS_DEBUG "")
|
||||
else()
|
||||
set(__ADDED_FLAGS_DEBUG "-D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd")
|
||||
set(__ADDED_FLAGS "-D_DLL -D_MT -Xclang --dependent-lib=msvcrt")
|
||||
endif()
|
||||
|
||||
string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -Xclang -gcodeview -O0 ${__ADDED_FLAGS_DEBUG}")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG ${__ADDED_FLAGS}")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG ${__ADDED_FLAGS}")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG -Xclang -gcodeview ${__ADDED_FLAGS}")
|
||||
endif()
|
||||
|
||||
string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -Xclang -gcodeview -O0 ${__ADDED_FLAGS_DEBUG}")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG ${__ADDED_FLAGS}")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG ${__ADDED_FLAGS}")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG -Xclang -gcodeview ${__ADDED_FLAGS}")
|
||||
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
|
||||
|
||||
set(CMAKE_PCH_EXTENSION .pch)
|
||||
|
||||
2
Modules/Platform/Windows-GNU-ASM.cmake
Normal file
2
Modules/Platform/Windows-GNU-ASM.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
include(Platform/Windows-GNU)
|
||||
__windows_compiler_gnu(ASM)
|
||||
1
Modules/Platform/WindowsPhone-Clang-ASM.cmake
Normal file
1
Modules/Platform/WindowsPhone-Clang-ASM.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Platform/Windows-Clang-ASM)
|
||||
1
Modules/Platform/WindowsPhone-GNU-ASM.cmake
Normal file
1
Modules/Platform/WindowsPhone-GNU-ASM.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Platform/Windows-GNU-ASM)
|
||||
1
Modules/Platform/WindowsStore-Clang-ASM.cmake
Normal file
1
Modules/Platform/WindowsStore-Clang-ASM.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Platform/Windows-Clang-ASM)
|
||||
1
Modules/Platform/WindowsStore-GNU-ASM.cmake
Normal file
1
Modules/Platform/WindowsStore-GNU-ASM.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(Platform/Windows-GNU-ASM)
|
||||
Reference in New Issue
Block a user