|
@@ -9,6 +9,15 @@ if(CMAKE_VERSION VERSION_EQUAL 3.24.0)
|
|
|
set(THREADS_HAVE_PTHREAD_ARG FALSE)
|
|
|
endif()
|
|
|
|
|
|
+# CMake 3.25 changed the way symbol generation is handled on Windows
|
|
|
+if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.25.0)
|
|
|
+ if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
|
|
|
+ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT ProgramDatabase)
|
|
|
+ else()
|
|
|
+ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
|
|
|
+ endif()
|
|
|
+endif()
|
|
|
+
|
|
|
message(DEBUG "Current Windows API version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
|
|
|
if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM)
|
|
|
message(DEBUG "Maximum Windows API version: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM}")
|
|
@@ -20,15 +29,24 @@ if(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION VERSION_LESS 10.0.20348)
|
|
|
endif()
|
|
|
|
|
|
add_compile_options(
|
|
|
- /W3 /utf-8 "$<$<COMPILE_LANG_AND_ID:C,MSVC>:/MP>" "$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/MP>"
|
|
|
+ /W3
|
|
|
+ /utf-8
|
|
|
+ "$<$<COMPILE_LANG_AND_ID:C,MSVC>:/MP>"
|
|
|
+ "$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/MP>"
|
|
|
"$<$<COMPILE_LANG_AND_ID:C,Clang>:${_obs_clang_c_options}>"
|
|
|
- "$<$<COMPILE_LANG_AND_ID:CXX,Clang>:${_obs_clang_cxx_options}>")
|
|
|
+ "$<$<COMPILE_LANG_AND_ID:CXX,Clang>:${_obs_clang_cxx_options}>"
|
|
|
+ $<$<NOT:$<CONFIG:Debug>>:/Gy>)
|
|
|
|
|
|
add_compile_definitions(UNICODE _UNICODE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS $<$<CONFIG:DEBUG>:DEBUG>
|
|
|
$<$<CONFIG:DEBUG>:_DEBUG>)
|
|
|
|
|
|
-add_link_options("$<$<NOT:$<CONFIG:Debug>>:/OPT:REF>" "$<$<CONFIG:Debug>:/INCREMENTAL:NO>"
|
|
|
- "$<$<CONFIG:RelWithDebInfo>:/INCREMENTAL:NO>" "$<$<CONFIG:RelWithDebInfo>:/OPT:ICF>")
|
|
|
+# cmake-format: off
|
|
|
+add_link_options($<$<NOT:$<CONFIG:Debug>>:/OPT:REF>
|
|
|
+ $<$<NOT:$<CONFIG:Debug>>:/OPT:ICF>
|
|
|
+ $<$<NOT:$<CONFIG:Debug>>:/INCREMENTAL:NO>
|
|
|
+ /DEBUG
|
|
|
+ /Brepro)
|
|
|
+# cmake-format: on
|
|
|
|
|
|
if(CMAKE_COMPILE_WARNING_AS_ERROR)
|
|
|
add_link_options(/WX)
|