diff --git a/CMakeLists.txt b/CMakeLists.txt index 5656d03..c25683e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,12 +280,6 @@ foreach(t IN LISTS TOOL_EXES ITEMS ${PROJECT_NAME}) target_link_options(${t} PRIVATE ${LINKER_SWITCHES}) endforeach() -if(MINGW) - foreach(t IN LISTS TOOL_EXES) - target_link_options(${t} PRIVATE -municode) - endforeach() -endif() - if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|IntelLLVM") set(WarningsLib -Wall -Wpedantic -Wextra) if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) diff --git a/build/CompilerAndLinker.cmake b/build/CompilerAndLinker.cmake index b93ddf9..c00b496 100644 --- a/build/CompilerAndLinker.cmake +++ b/build/CompilerAndLinker.cmake @@ -50,11 +50,20 @@ if(WIN32) list(APPEND COMPILER_DEFINES _UNICODE UNICODE) endif() +if(MINGW) + list(APPEND LINKER_SWITCHES -municode) +endif() + #--- General MSVC-like SDL options if(MSVC) list(APPEND COMPILER_SWITCHES "$<$>:/guard:cf>") list(APPEND LINKER_SWITCHES /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO) + if(WINDOWS_STORE) + list(APPEND COMPILER_SWITCHES /bigobj) + list(APPEND LINKER_SWITCHES /APPCONTAINER /MANIFEST:NO) + endif() + if((${DIRECTX_ARCH} STREQUAL "x86") OR ((CMAKE_SIZEOF_VOID_P EQUAL 4) AND (NOT (${DIRECTX_ARCH} MATCHES "^arm")))) list(APPEND LINKER_SWITCHES /SAFESEH) @@ -95,11 +104,18 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|IntelLLVM") if(MSVC AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)) list(APPEND COMPILER_SWITCHES /ZH:SHA_256) endif() + if(WINDOWS_STORE) + list(APPEND COMPILER_DEFINES _SILENCE_CLANG_COROUTINE_MESSAGE) + endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel") list(APPEND COMPILER_SWITCHES /Zc:__cplusplus /Zc:inline /fp:fast /Qdiag-disable:161) elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") list(APPEND COMPILER_SWITCHES /sdl /Zc:inline /fp:fast) + if(WINDOWS_STORE) + list(APPEND COMPILER_SWITCHES /await) + endif() + if(CMAKE_INTERPROCEDURAL_OPTIMIZATION) message(STATUS "Building using Whole Program Optimization") list(APPEND COMPILER_SWITCHES $<$>:/Gy /Gw>) @@ -159,6 +175,10 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") list(APPEND COMPILER_SWITCHES /Zc:static_assert-) endif() + if(WINDOWS_STORE AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.32)) + list(APPEND COMPILER_SWITCHES "/wd5246") + endif() + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.35) if(CMAKE_INTERPROCEDURAL_OPTIMIZATION) list(APPEND COMPILER_SWITCHES $<$>:/Zc:checkGwOdr>)