Clarify MSVC-only bundled SDL support

This commit is contained in:
Bram Verhulst
2026-04-12 23:26:29 +02:00
parent 1ba1c1f2cc
commit fda94f8246
3 changed files with 38 additions and 7 deletions

View File

@@ -7,10 +7,18 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
option(MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL "Use the bundled prebuilt SDL packages on Windows" ON)
option(MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL "Use the bundled prebuilt SDL packages for MSVC builds on Windows" ON)
option(MOTHERLOAD_ENABLE_WARNINGS "Enable compiler warnings" ON)
if(WIN32 AND MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL)
if(WIN32 AND MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL AND NOT MSVC)
message(FATAL_ERROR
"MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL=ON only supports MSVC/Visual Studio builds. "
"The bundled SDL package in Libraries/ is the SDL2 Visual C++ build, not a MinGW build. "
"For CLion/MinGW, disable MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL and use MinGW-compatible SDL packages instead."
)
endif()
if(MSVC AND MOTHERLOAD_USE_BUNDLED_WINDOWS_SDL)
list(PREPEND CMAKE_PREFIX_PATH
"${CMAKE_SOURCE_DIR}/Libraries/SDLMain/SDL2-2.26.3/cmake"
"${CMAKE_SOURCE_DIR}/Libraries/SDLImage/SDL2_image-2.6.3/cmake"
@@ -134,6 +142,11 @@ target_include_directories(Motherload
"${CMAKE_SOURCE_DIR}/Game"
"${CMAKE_SOURCE_DIR}/Engine"
)
if(TARGET SDL2::SDL2main)
target_link_libraries(Motherload PRIVATE SDL2::SDL2main)
endif()
target_link_libraries(Motherload
PRIVATE
Engine
@@ -143,10 +156,6 @@ target_link_libraries(Motherload
SDL2_mixer::SDL2_mixer
SDL2_ttf::SDL2_ttf
)
if(TARGET SDL2::SDL2main)
target_link_libraries(Motherload PRIVATE SDL2::SDL2main)
endif()
motherload_enable_warnings(Motherload)
source_group(TREE "${CMAKE_SOURCE_DIR}" FILES ${ENGINE_SOURCES} ${GAME_SOURCES})