39 lines
1.4 KiB
CMake
39 lines
1.4 KiB
CMake
# Resolves pre-built SDL3 libraries based on PLATFORM and SDL_LINK_TYPE.
|
|
#
|
|
# Windows: prebuilt/windows/ is committed to the repository.
|
|
# Run scripts/bootstrap_sdl_windows.ps1 once to (re)generate it.
|
|
# Linux: prebuilt/linux/ is built in-place on the Linux remote.
|
|
# Run scripts/bootstrap_sdl_linux.sh once after cloning.
|
|
|
|
set(SDL_PREBUILT_DIR "${CMAKE_SOURCE_DIR}/prebuilt/${PLATFORM}")
|
|
|
|
if(SDL_LINK_TYPE STREQUAL "static")
|
|
set(SDL_SEARCH_DIR "${SDL_PREBUILT_DIR}/SDL3-static")
|
|
else()
|
|
set(SDL_SEARCH_DIR "${SDL_PREBUILT_DIR}/SDL3-dynamic")
|
|
endif()
|
|
|
|
message(STATUS "Looking for SDL3 in: ${SDL_SEARCH_DIR}")
|
|
|
|
find_package(SDL3 REQUIRED CONFIG
|
|
PATHS "${SDL_SEARCH_DIR}"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
if(SDL_LINK_TYPE STREQUAL "static")
|
|
set(SDL_TARGET SDL3::SDL3-static)
|
|
else()
|
|
set(SDL_TARGET SDL3::SDL3)
|
|
endif()
|
|
|
|
message(STATUS "SDL_TARGET resolved to: ${SDL_TARGET}")
|
|
|
|
# On Linux with dynamic linking, embed the absolute path to the prebuilt lib
|
|
# directory in the binary's RPATH. prebuilt/linux is built in-place on the
|
|
# Linux remote so this path is always valid there.
|
|
if(SDL_LINK_TYPE STREQUAL "dynamic" AND UNIX AND NOT APPLE)
|
|
get_target_property(SDL3_SO_LOCATION SDL3::SDL3 LOCATION)
|
|
get_filename_component(SDL3_LIB_DIR "${SDL3_SO_LOCATION}" DIRECTORY)
|
|
message(STATUS "SDL3 runtime library directory: ${SDL3_LIB_DIR}")
|
|
set(SDL_LINUX_RPATH "${SDL3_LIB_DIR}" CACHE INTERNAL "")
|
|
endif() |