mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-03-20 15:51:07 +01:00
146
CMakeLists.txt
146
CMakeLists.txt
@@ -361,7 +361,7 @@ cmake_dependent_option(SDL_STATIC "Build a static version of the library" ${SDL_
|
||||
option(SDL_TEST_LIBRARY "Build the SDL3_test library" ON)
|
||||
|
||||
dep_option(SDL_TESTS "Build the test directory" OFF SDL_TEST_LIBRARY OFF)
|
||||
dep_option(SDL_INSTALL_TESTS "Install test-cases" OFF "NOT SDL_DISABLE_INSTALL;NOT SDL_FRAMEWORK;NOT WINDOWS_STORE" OFF)
|
||||
dep_option(SDL_INSTALL_TESTS "Install test-cases" OFF "NOT SDL_DISABLE_INSTALL;NOT SDL_FRAMEWORK" OFF)
|
||||
dep_option(SDL_TESTS_LINK_SHARED "link tests to shared SDL library" "${SDL_SHARED}" "SDL_SHARED;SDL_STATIC" "${SDL_SHARED}")
|
||||
set(SDL_TESTS_TIMEOUT_MULTIPLIER "1" CACHE STRING "Timeout multiplier to account for really slow machines")
|
||||
|
||||
@@ -428,11 +428,6 @@ if (LIBC_IS_GLIBC AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
sdl_compile_definitions(PRIVATE "_TIME_BITS=64")
|
||||
endif()
|
||||
|
||||
if(WINDOWS_STORE)
|
||||
sdl_compile_definitions(PRIVATE "SDL_BUILDING_WINRT=1" "WINAPI_FAMILY=WINAPI_FAMILY_APP")
|
||||
sdl_compile_options(PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:/ZW>" "$<$<COMPILE_LANGUAGE:CXX>:-EHsc>")
|
||||
endif()
|
||||
|
||||
check_linker_supports_version_file(HAVE_WL_VERSION_SCRIPT)
|
||||
if(HAVE_WL_VERSION_SCRIPT)
|
||||
sdl_shared_link_options("-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/dynapi/SDL_dynapi.sym")
|
||||
@@ -1833,15 +1828,6 @@ elseif(WINDOWS)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/windows/*.c")
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/main/windows/*.c")
|
||||
|
||||
if(WINDOWS_STORE)
|
||||
enable_language(CXX)
|
||||
sdl_glob_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/core/winrt/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/core/winrt/*.cpp"
|
||||
"${SDL3_SOURCE_DIR}/src/main/winrt/*.cpp"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(TARGET SDL3-shared AND MSVC AND NOT SDL_LIBC)
|
||||
# Prevent codegen that would use the VC runtime libraries.
|
||||
target_compile_options(SDL3-shared PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:/GS-> $<$<COMPILE_LANGUAGE:C,CXX>:/Gs1048576>)
|
||||
@@ -1850,11 +1836,8 @@ elseif(WINDOWS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WINDOWS_STORE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/winrt/*.cpp")
|
||||
else()
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/windows/*.c")
|
||||
endif()
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/windows/*.c")
|
||||
|
||||
set(HAVE_SDL_MISC TRUE)
|
||||
|
||||
# Check for DirectX
|
||||
@@ -1875,7 +1858,7 @@ elseif(WINDOWS)
|
||||
check_include_file(ddraw.h HAVE_DDRAW_H)
|
||||
check_include_file(dsound.h HAVE_DSOUND_H)
|
||||
check_include_file(dinput.h HAVE_DINPUT_H)
|
||||
if(WINDOWS_STORE OR SDL_CPU_ARM32)
|
||||
if(SDL_CPU_ARM32) # !!! FIXME: this should probably check if we're !(x86 or x86-64) instead of arm.
|
||||
set(HAVE_DINPUT_H 0)
|
||||
endif()
|
||||
check_include_file(dxgi.h HAVE_DXGI_H)
|
||||
@@ -1932,7 +1915,7 @@ elseif(WINDOWS)
|
||||
)
|
||||
|
||||
if(SDL_AUDIO)
|
||||
if(HAVE_DSOUND_H AND NOT WINDOWS_STORE)
|
||||
if(HAVE_DSOUND_H)
|
||||
set(SDL_AUDIO_DRIVER_DSOUND 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/directsound/*.c")
|
||||
set(HAVE_SDL_AUDIO TRUE)
|
||||
@@ -1942,27 +1925,15 @@ elseif(WINDOWS)
|
||||
set(SDL_AUDIO_DRIVER_WASAPI 1)
|
||||
set(HAVE_WASAPI TRUE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/audio/wasapi/*.c")
|
||||
if(WINDOWS_STORE)
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/audio/wasapi/SDL_wasapi_winrt.cpp")
|
||||
endif()
|
||||
set(HAVE_SDL_AUDIO TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL_VIDEO)
|
||||
if(WINDOWS_STORE)
|
||||
set(SDL_VIDEO_DRIVER_WINRT 1)
|
||||
sdl_glob_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/video/winrt/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/video/winrt/*.cpp"
|
||||
"${SDL3_SOURCE_DIR}/src/render/direct3d11/*.cpp"
|
||||
)
|
||||
else()
|
||||
set(SDL_VIDEO_DRIVER_WINDOWS 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/windows/*.c")
|
||||
endif()
|
||||
set(SDL_VIDEO_DRIVER_WINDOWS 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/video/windows/*.c")
|
||||
|
||||
if(SDL_RENDER_D3D AND HAVE_D3D9_H AND NOT WINDOWS_STORE)
|
||||
if(SDL_RENDER_D3D AND HAVE_D3D9_H)
|
||||
set(SDL_VIDEO_RENDER_D3D 1)
|
||||
set(HAVE_RENDER_D3D TRUE)
|
||||
endif()
|
||||
@@ -1970,7 +1941,7 @@ elseif(WINDOWS)
|
||||
set(SDL_VIDEO_RENDER_D3D11 1)
|
||||
set(HAVE_RENDER_D3D11 TRUE)
|
||||
endif()
|
||||
if(SDL_RENDER_D3D12 AND NOT WINDOWS_STORE)
|
||||
if(SDL_RENDER_D3D12)
|
||||
set(SDL_VIDEO_RENDER_D3D12 1)
|
||||
set(HAVE_RENDER_D3D12 TRUE)
|
||||
endif()
|
||||
@@ -1980,60 +1951,36 @@ elseif(WINDOWS)
|
||||
set(SDL_THREAD_GENERIC_COND_SUFFIX 1)
|
||||
set(SDL_THREAD_GENERIC_RWLOCK_SUFFIX 1)
|
||||
set(SDL_THREAD_WINDOWS 1)
|
||||
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()
|
||||
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"
|
||||
)
|
||||
|
||||
set(HAVE_SDL_THREADS TRUE)
|
||||
|
||||
if(SDL_SENSOR AND HAVE_SENSORSAPI_H AND NOT WINDOWS_STORE)
|
||||
if(SDL_SENSOR AND HAVE_SENSORSAPI_H)
|
||||
set(SDL_SENSOR_WINDOWS 1)
|
||||
set(HAVE_SDL_SENSORS TRUE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/sensor/windows/*.c")
|
||||
endif()
|
||||
|
||||
if(SDL_POWER)
|
||||
if(WINDOWS_STORE)
|
||||
set(SDL_POWER_WINRT 1)
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp")
|
||||
else()
|
||||
set(SDL_POWER_WINDOWS 1)
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/power/windows/SDL_syspower.c")
|
||||
set(HAVE_SDL_POWER TRUE)
|
||||
endif()
|
||||
set(SDL_POWER_WINDOWS 1)
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/power/windows/SDL_syspower.c")
|
||||
set(HAVE_SDL_POWER TRUE)
|
||||
endif()
|
||||
|
||||
if(WINDOWS_STORE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/winrt/*.c")
|
||||
else()
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/windows/*.c")
|
||||
endif()
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/locale/windows/*.c")
|
||||
set(HAVE_SDL_LOCALE TRUE)
|
||||
|
||||
set(SDL_FILESYSTEM_WINDOWS 1)
|
||||
if(WINDOWS_STORE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/winrt/*.cpp")
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/filesystem/windows/SDL_sysfsops.c")
|
||||
else()
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/windows/*.c")
|
||||
endif()
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/filesystem/windows/*.c")
|
||||
set(HAVE_SDL_FILESYSTEM TRUE)
|
||||
|
||||
set(SDL_FSOPS_WINDOWS 1)
|
||||
@@ -2041,27 +1988,12 @@ elseif(WINDOWS)
|
||||
|
||||
set(SDL_STORAGE_GENERIC 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/generic/*.c")
|
||||
if(NOT WINDOWS_STORE)
|
||||
set(SDL_STORAGE_STEAM 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/steam/*.c")
|
||||
endif()
|
||||
set(SDL_STORAGE_STEAM 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/storage/steam/*.c")
|
||||
set(HAVE_SDL_STORAGE 1)
|
||||
|
||||
# Libraries for Win32 native and MinGW
|
||||
if(NOT WINDOWS_STORE)
|
||||
sdl_link_dependency(base LIBS kernel32 user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
|
||||
endif()
|
||||
|
||||
if(WINDOWS_STORE)
|
||||
sdl_link_dependency(windows
|
||||
LIBS
|
||||
vccorlib$<$<CONFIG:Debug>:d>.lib
|
||||
msvcrt$<$<CONFIG:Debug>:d>.lib
|
||||
LINK_OPTIONS
|
||||
/nodefaultlib:vccorlib$<$<CONFIG:Debug>:d>
|
||||
/nodefaultlib:msvcrt$<$<CONFIG:Debug>:d>
|
||||
)
|
||||
endif()
|
||||
sdl_link_dependency(base LIBS kernel32 user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
|
||||
|
||||
set(SDL_TIME_WINDOWS 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/time/windows/*.c")
|
||||
@@ -2078,7 +2010,7 @@ elseif(WINDOWS)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/core/windows/*.c")
|
||||
|
||||
if(SDL_VIDEO)
|
||||
if(SDL_OPENGL AND NOT WINDOWS_STORE)
|
||||
if(SDL_OPENGL)
|
||||
set(SDL_VIDEO_OPENGL 1)
|
||||
set(SDL_VIDEO_OPENGL_WGL 1)
|
||||
set(SDL_VIDEO_RENDER_OGL 1)
|
||||
@@ -2109,18 +2041,14 @@ elseif(WINDOWS)
|
||||
if(SDL_JOYSTICK)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/joystick/windows/*.c")
|
||||
|
||||
if(NOT WINDOWS_STORE)
|
||||
set(SDL_JOYSTICK_RAWINPUT 1)
|
||||
endif()
|
||||
set(SDL_JOYSTICK_RAWINPUT 1)
|
||||
if(HAVE_DINPUT_H)
|
||||
set(SDL_JOYSTICK_DINPUT 1)
|
||||
sdl_link_dependency(joystick LIBS dinput8)
|
||||
endif()
|
||||
if(HAVE_XINPUT_H)
|
||||
if(NOT WINDOWS_STORE)
|
||||
set(SDL_JOYSTICK_XINPUT 1)
|
||||
set(HAVE_XINPUT TRUE)
|
||||
endif()
|
||||
set(SDL_JOYSTICK_XINPUT 1)
|
||||
set(HAVE_XINPUT TRUE)
|
||||
endif()
|
||||
if(HAVE_WINDOWS_GAMING_INPUT_H)
|
||||
set(SDL_JOYSTICK_WGI 1)
|
||||
@@ -2132,7 +2060,7 @@ elseif(WINDOWS)
|
||||
set(HAVE_SDL_JOYSTICK TRUE)
|
||||
|
||||
if(SDL_HAPTIC)
|
||||
if(HAVE_DINPUT_H AND NOT WINDOWS_STORE)
|
||||
if(HAVE_DINPUT_H)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/haptic/windows/*.c")
|
||||
set(SDL_HAPTIC_DINPUT 1)
|
||||
set(HAVE_SDL_HAPTIC TRUE)
|
||||
@@ -2141,7 +2069,7 @@ elseif(WINDOWS)
|
||||
endif()
|
||||
|
||||
if(SDL_CAMERA)
|
||||
if(HAVE_MFAPI_H AND NOT WINDOWS_STORE)
|
||||
if(HAVE_MFAPI_H)
|
||||
set(HAVE_CAMERA TRUE)
|
||||
set(SDL_CAMERA_DRIVER_MEDIAFOUNDATION 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/mediafoundation/*.c")
|
||||
@@ -2922,7 +2850,7 @@ if (SDL_DIALOG)
|
||||
elseif(HAIKU)
|
||||
sdl_sources(${SDL3_SOURCE_DIR}/src/dialog/haiku/SDL_haikudialog.cc)
|
||||
set(HAVE_SDL_DIALOG TRUE)
|
||||
elseif(WINDOWS AND NOT WINDOWS_STORE)
|
||||
elseif(WINDOWS)
|
||||
sdl_sources(${SDL3_SOURCE_DIR}/src/dialog/windows/SDL_windowsdialog.c)
|
||||
set(HAVE_SDL_DIALOG TRUE)
|
||||
elseif(MACOS)
|
||||
@@ -2943,7 +2871,7 @@ if(SDL_VIDEO)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL_GPU AND NOT WINDOWS_STORE)
|
||||
if(SDL_GPU)
|
||||
if(HAVE_D3D11_H)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/gpu/d3d11/*.c")
|
||||
set(SDL_GPU_D3D11 1)
|
||||
@@ -3316,7 +3244,7 @@ if(SDL_SHARED)
|
||||
)
|
||||
endif()
|
||||
if(NOT SDL_LIBC)
|
||||
if(MSVC AND (NOT MSVC_CLANG AND NOT WINDOWS_STORE))
|
||||
if(MSVC AND NOT MSVC_CLANG)
|
||||
# Don't try to link with the default set of libraries.
|
||||
# Note: The clang toolset for Visual Studio does not support /NODEFAULTLIB.
|
||||
target_link_options(SDL3-shared PRIVATE "/NODEFAULTLIB")
|
||||
|
||||
Reference in New Issue
Block a user