diff options
| author | Erik Kundiman <erik@megapahit.org> | 2026-09-10 20:29:46 +0800 |
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2026-09-10 20:29:46 +0800 |
| commit | 907b3f013aa7f906faa4280ff05505f909ee460c (patch) | |
| tree | b4bd6e73532fff653c7f5b0b4534ee605f5b27ae /indra | |
| parent | da66c6f3d95682306b31e2646e73ba5505a73680 (diff) | |
Temporarily use pre-/self-built SDL3 on Debian
as current stable Debian 13 SDL3 has missing struct members. Revert this
if 13 gets a newer SDL3 or the stable version upgrades to 14. The
version chosen to be built on arm64 here is the same as in
autobuild.xml, which is 3.2.24.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/SDL3.cmake | 48 | ||||
| -rw-r--r-- | indra/newview/ViewerInstall.cmake | 9 |
2 files changed, 49 insertions, 8 deletions
diff --git a/indra/cmake/SDL3.cmake b/indra/cmake/SDL3.cmake index e5c8c912e8..715110eba2 100644 --- a/indra/cmake/SDL3.cmake +++ b/indra/cmake/SDL3.cmake @@ -12,15 +12,40 @@ else() endif () if(USE_SDL_WINDOW) - include(FindPkgConfig) - pkg_search_module(SDL3 REQUIRED sdl3) - target_link_directories(ll::SDL3 INTERFACE ${SDL3_LIBRARY_DIRS}) - target_link_libraries(ll::SDL3 INTERFACE ${SDL3_LIBRARIES}) - target_include_directories(ll::SDL3 SYSTEM INTERFACE ${SDL3_INCLUDE_DIRS}) - return () - - use_system_binary(SDL3) + #use_system_binary(SDL3) + if (${LINUX_DISTRO} MATCHES debian) + if (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) use_prebuilt_binary(SDL3) + elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/SDL3_installed OR NOT ${SDL3_installed} EQUAL 0) + if (NOT EXISTS ${CMAKE_BINARY_DIR}/SDL-release-3.2.24.tar.gz) + file(DOWNLOAD + https://github.com/libsdl-org/SDL/archive/refs/tags/release-3.2.24.tar.gz + ${CMAKE_BINARY_DIR}/SDL-release-3.2.24.tar.gz + ) + endif () + file(ARCHIVE_EXTRACT + INPUT ${CMAKE_BINARY_DIR}/SDL-release-3.2.24.tar.gz + DESTINATION ${CMAKE_BINARY_DIR} + ) + try_compile(SDL3_RESULT + PROJECT SDL3 + SOURCE_DIR ${CMAKE_BINARY_DIR}/SDL-release-3.2.24 + BINARY_DIR ${CMAKE_BINARY_DIR}/SDL-release-3.2.24_build + CMAKE_FLAGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} + -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE} + -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON + ) + if (${SDL3_RESULT}) + execute_process( + COMMAND ${CMAKE_MAKE_PROGRAM} install + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/SDL-release-3.2.24_build + RESULT_VARIABLE SDL3_installed + ) + file(WRITE ${PREBUILD_TRACKING_DIR}/SDL3_installed "${SDL3_installed}") + endif () + endif () find_library( SDL3_LIBRARY NAMES SDL3 SDL3.lib libSDL3.so libSDL3.dylib @@ -29,5 +54,12 @@ if(USE_SDL_WINDOW) target_link_libraries(ll::SDL3 INTERFACE ${SDL3_LIBRARY}) target_include_directories(ll::SDL3 SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/") + else () + include(FindPkgConfig) + pkg_search_module(SDL3 REQUIRED sdl3) + target_link_directories(ll::SDL3 INTERFACE ${SDL3_LIBRARY_DIRS}) + target_link_libraries(ll::SDL3 INTERFACE ${SDL3_LIBRARIES}) + target_include_directories(ll::SDL3 SYSTEM INTERFACE ${SDL3_INCLUDE_DIRS}) + endif () endif(USE_SDL_WINDOW) diff --git a/indra/newview/ViewerInstall.cmake b/indra/newview/ViewerInstall.cmake index 099a7070bc..f58968e542 100644 --- a/indra/newview/ViewerInstall.cmake +++ b/indra/newview/ViewerInstall.cmake @@ -260,6 +260,15 @@ if (LINUX) DESTINATION ${_LIB} ) endif () + if (${LINUX_DISTRO} MATCHES debian) + install( + FILES + ${ARCH_PREBUILT_DIRS_RELEASE}/libSDL3.so + ${ARCH_PREBUILT_DIRS_RELEASE}/libSDL3.so.0 + ${ARCH_PREBUILT_DIRS_RELEASE}/libSDL3.so.0.2.24 + DESTINATION ${_LIB} + ) + endif () endif (LINUX) install(DIRECTORY skins app_settings fonts |
