From 2d1d3d9fb228e8f172e3d0bb7fae3e1b0426163f Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Thu, 18 Jul 2024 22:32:49 +0200 Subject: [PATCH] cmake: fix building UWP with non-MSVC generator --- CMakeLists.txt | 35 +++++++++++++++++++++++------------ cmake/test/CMakeLists.txt | 2 +- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2745f9761a..e2e53b04e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -411,8 +411,8 @@ if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4) endif() if(WINDOWS_STORE) - sdl_compile_definitions(PRIVATE "SDL_BUILDING_WINRT=1") - sdl_compile_options(PRIVATE "-ZW") + sdl_compile_definitions(PRIVATE "SDL_BUILDING_WINRT=1" "WINAPI_FAMILY=WINAPI_FAMILY_APP") + sdl_compile_options(PRIVATE "$<$:/ZW>" "$<$:-EHsc>") endif() check_linker_supports_version_file(HAVE_WL_VERSION_SCRIPT) @@ -1937,16 +1937,27 @@ elseif(WINDOWS) set(SDL_THREAD_GENERIC_COND_SUFFIX 1) set(SDL_THREAD_GENERIC_RWLOCK_SUFFIX 1) set(SDL_THREAD_WINDOWS 1) - sdl_sources( - "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_syscond.c" - "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" - "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_syscond_cv.c" - "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_sysmutex.c" - "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_sysrwlock_srw.c" - "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_syssem.c" - "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_systhread.c" - "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_systls.c" - ) + if(WINDOWS_STORE) + sdl_sources( + "${SDL3_SOURCE_DIR}/src/thread/stdcpp/SDL_syscond.cpp" + "${SDL3_SOURCE_DIR}/src/thread/stdcpp/SDL_sysmutex.cpp" + "${SDL3_SOURCE_DIR}/src/thread/stdcpp/SDL_sysrwlock.cpp" + "${SDL3_SOURCE_DIR}/src/thread/stdcpp/SDL_systhread.cpp" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_syssem.c" + ) + else() + sdl_sources( + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_syscond.c" + "${SDL3_SOURCE_DIR}/src/thread/generic/SDL_sysrwlock.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_syscond_cv.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_sysmutex.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_sysrwlock_srw.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_syssem.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_systhread.c" + "${SDL3_SOURCE_DIR}/src/thread/windows/SDL_systls.c" + ) + endif() + set(HAVE_SDL_THREADS TRUE) if(SDL_SENSOR AND HAVE_SENSORSAPI_H AND NOT WINDOWS_STORE) diff --git a/cmake/test/CMakeLists.txt b/cmake/test/CMakeLists.txt index caf99e15a7..066a1ee4a3 100644 --- a/cmake/test/CMakeLists.txt +++ b/cmake/test/CMakeLists.txt @@ -8,7 +8,7 @@ message(STATUS "CMAKE_SYSTEM_PROCESSOR= ${CMAKE_SYSTEM_PROCESSOR}") if(WINDOWS_STORE) enable_language(CXX) - add_compile_options(/ZW) + add_compile_options("$<$:/ZW>") set_source_files_properties(ain_cli.c main_gui.c PROPERTIES LANGUAGE CXX) endif()