From a9c9264fa4a2dc5a50f6a6867fe946f3ec998bef Mon Sep 17 00:00:00 2001 From: Ghabry Date: Wed, 22 Jan 2025 17:14:15 +0100 Subject: [PATCH] CMake: Do not autoselect between SDL3,2,1 anymore --- CMakeLists.txt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 105830855c..ce126ab3b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -564,7 +564,7 @@ elseif(NINTENDO_WIIU) elseif(AMIGA) set(PLAYER_TARGET_PLATFORM "SDL1" CACHE STRING "Platform to compile for.") else() - set(PLAYER_TARGET_PLATFORM "SDL3" CACHE STRING "Platform to compile for. Options: SDL3 SDL2 SDL1 libretro") + set(PLAYER_TARGET_PLATFORM "Unset" CACHE STRING "Platform to compile for. Options: SDL3 SDL2 SDL1 libretro") set_property(CACHE PLAYER_TARGET_PLATFORM PROPERTY STRINGS SDL3 SDL2 SDL1 libretro) endif() set(PLAYER_BUILD_EXECUTABLE ON) @@ -579,7 +579,10 @@ if(ANDROID AND PLAYER_GRADLE_BUILD) endforeach(f) endif() -if(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL3") +if(${PLAYER_TARGET_PLATFORM} STREQUAL "Unset") + get_property(PLAT_PROP CACHE PLAYER_TARGET_PLATFORM PROPERTY STRINGS) + message(FATAL_ERROR "Please specify the target platform with -DPLAYER_TARGET_PLATFORM.\nOptions: ${PLAT_PROP}") +elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL3") target_sources(${PROJECT_NAME} PRIVATE src/platform/sdl/sdl3_ui.cpp src/platform/sdl/sdl3_ui.h) @@ -714,9 +717,7 @@ else() endif() # Sound system to use -if(PLAYER_AUDIO_BACKEND) - # already set earlier in the platform config -elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL3") +if(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL3") set(PLAYER_AUDIO_BACKEND "SDL3" CACHE STRING "Audio system to use. Options: SDL3 OFF") set_property(CACHE PLAYER_AUDIO_BACKEND PROPERTY STRINGS SDL3 OFF) elseif(${PLAYER_TARGET_PLATFORM} STREQUAL "SDL2") @@ -735,6 +736,7 @@ else() set_property(CACHE PLAYER_AUDIO_BACKEND PROPERTY STRINGS ${PLAYER_TARGET_PLATFORM} OFF) endif() +get_property(AUDIO_PROP CACHE PLAYER_AUDIO_BACKEND PROPERTY STRINGS) set(PLAYER_HAS_AUDIO ON) if(${PLAYER_AUDIO_BACKEND} STREQUAL "SDL3") target_sources(${PROJECT_NAME} PRIVATE @@ -758,7 +760,11 @@ elseif(${PLAYER_AUDIO_BACKEND} STREQUAL ${PLAYER_TARGET_PLATFORM}) elseif(${PLAYER_AUDIO_BACKEND} STREQUAL "OFF") set(PLAYER_HAS_AUDIO OFF) else() - message(FATAL_ERROR "Invalid Audio Backend ${PLAYER_AUDIO_BACKEND}") + message(FATAL_ERROR "Invalid Audio Backend ${PLAYER_AUDIO_BACKEND}\nOptions: ${AUDIO_PROP}") +endif() + +if(NOT PLAYER_AUDIO_BACKEND IN_LIST AUDIO_PROP) + message(FATAL_ERROR "Incompatible audio backend configuration ${PLAYER_AUDIO_BACKEND}.\nPlease clear the CMake cache.\nOptions: ${AUDIO_PROP}") endif() # Shared by homebrew platforms