diff options
| -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 |
