summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2026-06-22 08:34:39 +0800
committerErik Kundiman <erik@megapahit.org>2026-06-22 11:25:21 +0800
commitee87dd9f21e0dcd5a2f3a78586e5ae5d2ba592d5 (patch)
tree93ca93a3da687423f09218477fd2ede4c82f0fcb /indra
parent341ae1a286c722f24066b2cb2a3755d19c3a9866 (diff)
Flatpak supportHEADmain
Still uses prebuilt GLU, could be improved by using the glu shared module. Still uses prebuilt OpenAL, could be improved by separating the ALUT dependency (which isn't available on the runtime) from it, so we could use runtime's OpenAL. Still uses prebuilt LibXML2, could be improved by separating the Minizip & ColladaDOM from it (which aren't available on the runtime) from it, so we could use runtime's LibXML2 but have ColladaDOM built against it (and a still non-runtime Minizip). Still uses FLTK 1.3, when I tried using 1.4, it still had linking errors (might need to just add Cairo libraries to the target_link_libraries). VLC plugins are installed in vlc/plugins path relative to the vlc & vlccore libraries, the way they are in the distro I got the binaries from (Debian), cause I think it's the libraries that are compiled with that path. Still uses prebuilt dependencies in general, could be improved by having them as modules to be built. _FORTIFY_SOURCE needs to be skipped to avoid redefinition cause Flatpak build system already defines it. The conditionals for deciding installation paths need to be reorganised to accomodate installation that doesn't require an encapsulating namespace (because the installed files are already encapsulated in the app sandbox). The library directory naming scheme used here is lib64. The libGLESv2.so & libvulkan.so.1 installed are still copies, not links yet, because I'm still not familiar yet with the runtime hierarchies (they might reside just in /usr/lib/x86_64-linux-gnu).
Diffstat (limited to 'indra')
-rw-r--r--indra/cmake/00-Common.cmake2
-rw-r--r--indra/cmake/APR.cmake27
-rw-r--r--indra/cmake/Boost.cmake40
-rw-r--r--indra/cmake/CEFPlugin.cmake15
-rw-r--r--indra/cmake/GLM.cmake2
-rw-r--r--indra/cmake/LLPrimitive.cmake8
-rw-r--r--indra/cmake/LibVLCPlugin.cmake9
-rw-r--r--indra/cmake/OPENAL.cmake16
-rw-r--r--indra/cmake/OpenGL.cmake5
-rw-r--r--indra/cmake/UI.cmake5
-rw-r--r--indra/cmake/UnixInstall.cmake28
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake2
-rw-r--r--indra/llplugin/slplugin/CMakeLists.txt2
-rw-r--r--indra/llrender/CMakeLists.txt7
-rw-r--r--indra/llwebrtc/CMakeLists.txt2
-rw-r--r--indra/media_plugins/cef/CMakeLists.txt57
-rw-r--r--indra/media_plugins/libvlc/CMakeLists.txt16
-rw-r--r--indra/newview/ViewerInstall.cmake38
18 files changed, 188 insertions, 93 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 90ca9866bb..4b007ceec9 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -154,7 +154,7 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
--param asan-stack=0
)
add_link_options(-fsanitize=address)
- else()
+ elseif( NOT USE_FLATPAK )
add_compile_definitions( _FORTIFY_SOURCE=2 )
endif()
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index 4ce0d47f7f..b7ada1cfb1 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -5,21 +5,22 @@ include_guard()
add_library( ll::apr INTERFACE IMPORTED )
-if (WINDOWS)
- target_include_directories(ll::apr SYSTEM INTERFACE ${prefix_result}/../include)
- target_link_directories(ll::apr INTERFACE ${prefix_result})
- target_link_libraries(ll::apr INTERFACE libapr-1 libaprutil-1)
-else ()
- include(FindPkgConfig)
- pkg_check_modules(Apr REQUIRED apr-1 apr-util-1)
- target_include_directories(ll::apr SYSTEM INTERFACE ${Apr_INCLUDE_DIRS})
- target_link_directories(ll::apr INTERFACE ${Apr_LIBRARY_DIRS})
- target_link_libraries(ll::apr INTERFACE ${Apr_LIBRARIES})
+if (NOT USE_FLATPAK)
+ if (WINDOWS)
+ target_include_directories(ll::apr SYSTEM INTERFACE ${prefix_result}/../include)
+ target_link_directories(ll::apr INTERFACE ${prefix_result})
+ target_link_libraries(ll::apr INTERFACE libapr-1 libaprutil-1)
+ else ()
+ include(FindPkgConfig)
+ pkg_check_modules(Apr REQUIRED apr-1 apr-util-1)
+ target_include_directories(ll::apr SYSTEM INTERFACE ${Apr_INCLUDE_DIRS})
+ target_link_directories(ll::apr INTERFACE ${Apr_LIBRARY_DIRS})
+ target_link_libraries(ll::apr INTERFACE ${Apr_LIBRARIES})
+ endif ()
+ return ()
endif ()
-return ()
-
-use_system_binary( apr apr-util )
+#use_system_binary( apr apr-util )
use_prebuilt_binary(apr_suite)
if (WINDOWS)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 3f9134cb8f..a6e60aa95b 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -28,27 +28,29 @@ elseif (WINDOWS)
message(WARNING "Could not detect Boost suffix via glob; using fallback '${sfx}'. "
"Check that vcpkg installed boost into ${prefix_result}.")
endif ()
-else ()
+elseif (NOT USE_FLATPAK)
find_package( Boost )
endif ()
-target_link_libraries( ll::boost INTERFACE
- boost_context${sfx}
- boost_fiber${sfx}
- boost_filesystem${sfx}
- boost_program_options${sfx}
- boost_thread${sfx}
- boost_url${sfx}
- )
-if (WINDOWS)
- target_link_libraries( ll::boost INTERFACE boost_json${sfx})
-else ()
- target_link_libraries( ll::boost INTERFACE boost_regex${sfx})
-endif ()
-if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES fedora) OR DARWIN)
- target_link_libraries( ll::boost INTERFACE boost_system${sfx})
+if (NOT USE_FLATPAK)
+ target_link_libraries( ll::boost INTERFACE
+ boost_context${sfx}
+ boost_fiber${sfx}
+ boost_filesystem${sfx}
+ boost_program_options${sfx}
+ boost_thread${sfx}
+ boost_url${sfx}
+ )
+ if (WINDOWS)
+ target_link_libraries( ll::boost INTERFACE boost_json${sfx})
+ else ()
+ target_link_libraries( ll::boost INTERFACE boost_regex${sfx})
+ endif ()
+ if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES fedora) OR DARWIN)
+ target_link_libraries( ll::boost INTERFACE boost_system${sfx})
+ endif ()
+ target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
+ return()
endif ()
-target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
-return()
if( USE_CONAN )
target_link_libraries( ll::boost INTERFACE CONAN_PKG::boost )
@@ -163,3 +165,5 @@ target_link_libraries(ll::boost INTERFACE
if (LINUX)
target_link_libraries(ll::boost INTERFACE rt)
endif (LINUX)
+
+target_include_directories(ll::boost SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 2c71074eb8..2546ec7993 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -1,7 +1,6 @@
# -*- cmake -*-
include(Linking)
include(Prebuilt)
-include(UnixInstall)
include_guard()
add_library( ll::cef INTERFACE IMPORTED )
@@ -50,7 +49,7 @@ if (${LINUX_DISTRO} MATCHES arch)
-DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE}
-DCEF_WRAPPER_DIR:PATH=/usr/include/cef
-DCEF_WRAPPER_BUILD_DIR:PATH=${CMAKE_BINARY_DIR}/dullahan-1.31.0-CEF_148.0.9
- -DCEF_LIBRARY_RELEASE:FILEPATH=${INSTALL_PREFIX}/${_LIB}/cef/libcef.so
+ -DCEF_LIBRARY_RELEASE:FILEPATH=${INSTALL_PREFIX}/lib/cef/libcef.so
-DCEF_DLL_LIBRARY_RELEASE:FILEPATH=${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
"-DCMAKE_CXX_FLAGS:STRING=-I/usr/include/cef -I/usr/src/cef -DWRAPPING_CEF_SHARED"
)
@@ -118,7 +117,7 @@ elseif (${LINUX_DISTRO} MATCHES fedora)
-DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE}
-DCEF_WRAPPER_DIR:PATH=/usr/include/cef
-DCEF_WRAPPER_BUILD_DIR:PATH=${CMAKE_BINARY_DIR}/dullahan-1.29.0-CEF_146.0.12
- -DCEF_LIBRARY_RELEASE:FILEPATH=${INSTALL_PREFIX}/${_LIB}/cef/libcef.so
+ -DCEF_LIBRARY_RELEASE:FILEPATH=${INSTALL_PREFIX}/lib${ADDRESS_SIZE}/cef/libcef.so
-DCEF_DLL_LIBRARY_RELEASE:FILEPATH=${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
"-DCMAKE_CXX_FLAGS:STRING=-I/usr/include/cef -I/usr/src/cef-146.0.11 -DWRAPPING_CEF_SHARED"
)
@@ -198,8 +197,11 @@ execute_process(
if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora))
target_include_directories( ll::cef SYSTEM INTERFACE /usr/include/cef/include)
+ if (${LINUX_DISTRO} MATCHES fedora)
+ set(LIB_SUFFIX ${ADDRESS_SIZE})
+ endif ()
execute_process(
- COMMAND patchelf --add-rpath ${INSTALL_PREFIX}/${_LIB}/cef bin/release/dullahan_host
+ COMMAND patchelf --add-rpath ${INSTALL_PREFIX}/lib${LIB_SUFFIX}/cef bin/release/dullahan_host
WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}
)
endif ()
@@ -271,7 +273,10 @@ elseif (DARWIN)
elseif (LINUX)
if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora))
- target_link_directories( ll::cef INTERFACE ${INSTALL_PREFIX}/${_LIB}/cef )
+ if (${LINUX_DISTRO} MATCHES fedora)
+ set(LIB_SUFFIX ${ADDRESS_SIZE})
+ endif ()
+ target_link_directories( ll::cef INTERFACE ${INSTALL_PREFIX}/lib${LIB_SUFFIX}/cef )
endif ()
target_link_libraries( ll::cef INTERFACE
libdullahan.a
diff --git a/indra/cmake/GLM.cmake b/indra/cmake/GLM.cmake
index 957c220bc7..d804774ff6 100644
--- a/indra/cmake/GLM.cmake
+++ b/indra/cmake/GLM.cmake
@@ -4,7 +4,7 @@ include(Prebuilt)
add_library( ll::glm INTERFACE IMPORTED )
#use_system_binary( glm )
-if (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64))
+if (USE_FLATPAK OR (${LINUX_DISTRO} MATCHES debian) OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64))
use_prebuilt_binary(glm)
elseif (NOT WINDOWS)
find_package( glm REQUIRED )
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 523dbc37de..eb1f23b2a3 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -18,7 +18,7 @@ if( USE_CONAN )
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
-if (TRUE)
+if (NOT USE_FLATPAK)
include(FindPkgConfig)
pkg_check_modules(Minizip REQUIRED minizip)
if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES gentoo) OR DARWIN OR WINDOWS)
@@ -147,9 +147,9 @@ if (TRUE)
file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}")
endif ()
-else (TRUE)
+else (NOT USE_FLATPAK)
-use_system_binary( colladadom )
+#use_system_binary( colladadom )
use_prebuilt_binary(colladadom)
use_prebuilt_binary(minizip-ng) # needed for colladadom
@@ -175,7 +175,7 @@ if (WINDOWS)
target_link_libraries( ll::libxml INTERFACE Bcrypt.lib)
endif()
-endif (TRUE)
+endif (NOT USE_FLATPAK)
target_include_directories( ll::colladadom SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include/collada
diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake
index 981f020745..e8cd051021 100644
--- a/indra/cmake/LibVLCPlugin.cmake
+++ b/indra/cmake/LibVLCPlugin.cmake
@@ -27,11 +27,14 @@ if (DARWIN)
target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include)
target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib)
target_link_libraries( ll::libvlc INTERFACE vlc vlccore )
-elseif (WINDOWS)
+elseif (WINDOWS OR USE_FLATPAK)
use_prebuilt_binary(vlc-bin)
+ if (WINDOWS)
+ set(LIB_SUFFIX lib)
+ endif ()
target_link_libraries( ll::libvlc INTERFACE
- libvlc.lib
- libvlccore.lib
+ ${LIB_SUFFIX}vlc
+ ${LIB_SUFFIX}vlccore
)
else ()
include(FindPkgConfig)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 1b7f9b9071..3a36c64fd3 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -19,13 +19,15 @@ endif()
if (USE_OPENAL)
add_library( ll::openal INTERFACE IMPORTED )
- target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
- include(FindPkgConfig)
- pkg_check_modules(Openal REQUIRED freealut)
- target_include_directories(ll::openal SYSTEM INTERFACE ${Openal_INCLUDE_DIRS})
- target_link_directories(ll::openal INTERFACE ${Openal_LIBRARY_DIRS})
- target_link_libraries(ll::openal INTERFACE ${Openal_LIBRARIES})
- return ()
+ if (NOT USE_FLATPAK)
+ target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
+ include(FindPkgConfig)
+ pkg_check_modules(Openal REQUIRED freealut)
+ target_include_directories(ll::openal SYSTEM INTERFACE ${Openal_INCLUDE_DIRS})
+ target_link_directories(ll::openal INTERFACE ${Openal_LIBRARY_DIRS})
+ target_link_libraries(ll::openal INTERFACE ${Openal_LIBRARIES})
+ return ()
+ endif ()
target_include_directories( ll::openal SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/AL")
target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake
index bf7cd8366a..5e00eff3b8 100644
--- a/indra/cmake/OpenGL.cmake
+++ b/indra/cmake/OpenGL.cmake
@@ -4,3 +4,8 @@ include(Variables)
include(Prebuilt)
include(FindOpenGL)
+if (USE_FLATPAK)
+ add_library(ll::glu INTERFACE IMPORTED)
+ use_prebuilt_binary(glu)
+ target_link_libraries(ll::glu INTERFACE GLU)
+endif ()
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index dc8d84217a..a5e6971248 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -6,6 +6,9 @@ include(GLIB)
add_library( ll::uilibraries INTERFACE IMPORTED )
if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ if (USE_FLATPAK)
+ use_prebuilt_binary(fltk)
+ endif ()
target_compile_definitions(ll::uilibraries INTERFACE LL_FLTK=1 LL_X11=1 )
if( USE_CONAN )
@@ -51,7 +54,7 @@ if( WINDOWS )
)
endif()
-if (FALSE)
+if (USE_FLATPAK)
target_include_directories( ll::uilibraries SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include
)
diff --git a/indra/cmake/UnixInstall.cmake b/indra/cmake/UnixInstall.cmake
index b82cbbcc2f..65170b5744 100644
--- a/indra/cmake/UnixInstall.cmake
+++ b/indra/cmake/UnixInstall.cmake
@@ -6,23 +6,25 @@ set(INSTALL OFF CACHE BOOL
"Generate install target.")
if (INSTALL)
- if (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ if (USE_FLATPAK OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
set(INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH
"Top-level installation directory.")
- else (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ else ()
set(INSTALL_PREFIX /usr CACHE PATH
"Top-level installation directory.")
- endif (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ endif ()
- if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
- set(_LIB lib/${ARCH}-linux-gnu)
- elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
+ if (USE_FLATPAK)
set(_LIB lib${ADDRESS_SIZE})
+ elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+ set(_LIB lib/${ARCH}-linux-gnu/${VIEWER_BINARY_NAME})
+ elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
+ set(_LIB lib${ADDRESS_SIZE}/${VIEWER_BINARY_NAME})
else ()
- set(_LIB lib)
+ set(_LIB lib/${VIEWER_BINARY_NAME})
endif ()
- set(INSTALL_LIBRARY_DIR ${INSTALL_PREFIX}/${_LIB}/${VIEWER_BINARY_NAME} CACHE PATH
+ set(INSTALL_LIBRARY_DIR ${INSTALL_PREFIX}/${_LIB} CACHE PATH
"Installation directory for dynamic library files and their resources.")
set(INSTALL_SHARE_DIR ${INSTALL_PREFIX}/share CACHE PATH
@@ -35,13 +37,17 @@ if (INSTALL)
set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/${VIEWER_BINARY_NAME}
CACHE PATH
"Installation directory for read-only data files.")
- if (${LINUX_DISTRO} MATCHES arch)
+ if (USE_FLATPAK)
+ set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/libexec
+ CACHE PATH
+ "Installation directory for non-manual executables.")
+ elseif (${LINUX_DISTRO} MATCHES arch)
set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/lib/${VIEWER_BINARY_NAME}
CACHE PATH
"Installation directory for non-manual executables.")
- else (${LINUX_DISTRO} MATCHES arch)
+ else ()
set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/libexec/${VIEWER_BINARY_NAME}
CACHE PATH
"Installation directory for non-manual executables.")
- endif (${LINUX_DISTRO} MATCHES arch)
+ endif ()
endif (INSTALL)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 65b8e5cfc0..aece8f834c 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -16,7 +16,7 @@ endif()
use_prebuilt_binary(slvoice)
endif (FALSE)
-if (DARWIN)
+if (DARWIN OR USE_FLATPAK)
use_prebuilt_binary(nanosvg)
endif ()
use_prebuilt_binary(viewer-fonts)
diff --git a/indra/llplugin/slplugin/CMakeLists.txt b/indra/llplugin/slplugin/CMakeLists.txt
index 38f4c92b09..2a6aa10165 100644
--- a/indra/llplugin/slplugin/CMakeLists.txt
+++ b/indra/llplugin/slplugin/CMakeLists.txt
@@ -69,6 +69,8 @@ endif ()
if (INSTALL)
if (DARWIN OR WINDOWS)
install(TARGETS ${PROJECT_NAME} DESTINATION .)
+ elseif (USE_FLATPAK)
+ install(TARGETS ${PROJECT_NAME} DESTINATION libexec)
elseif (${LINUX_DISTRO} MATCHES arch)
install(TARGETS ${PROJECT_NAME} DESTINATION lib/${VIEWER_BINARY_NAME})
else ()
diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt
index 6de5685517..d7a1d76630 100644
--- a/indra/llrender/CMakeLists.txt
+++ b/indra/llrender/CMakeLists.txt
@@ -103,7 +103,12 @@ target_link_libraries(llrender
llwindow
ll::freetype
OpenGL::GL
- OpenGL::GLU
)
+if (USE_FLATPAK)
+ target_link_libraries(${PROJECT_NAME} ll::glu)
+else ()
+ target_link_libraries(${PROJECT_NAME} OpenGL::GLU)
+endif ()
+
include(LibraryInstall)
diff --git a/indra/llwebrtc/CMakeLists.txt b/indra/llwebrtc/CMakeLists.txt
index 1c53b0263c..761aab8a7a 100644
--- a/indra/llwebrtc/CMakeLists.txt
+++ b/indra/llwebrtc/CMakeLists.txt
@@ -76,6 +76,8 @@ endif (LL_TESTS)
if (INSTALL)
if (DARWIN)
set(_LIB ../Frameworks)
+ elseif (USE_FLATPAK)
+ set(_LIB lib${ADDRESS_SIZE})
elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
set(_LIB lib/${ARCH}-linux-gnu/${VIEWER_BINARY_NAME})
elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt
index 4736eef420..a3d36d0ed7 100644
--- a/indra/media_plugins/cef/CMakeLists.txt
+++ b/indra/media_plugins/cef/CMakeLists.txt
@@ -52,7 +52,10 @@ if (LINUX)
list(APPEND media_plugin_cef_SOURCE_FILES ${LINUX_VOLUME_CATCHER})
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id")
if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora))
- set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH};${INSTALL_PREFIX}/${_LIB}/cef)
+ if (${LINUX_DISTRO} MATCHES fedora)
+ set(LIB_SUFFIX ${ADDRESS_SIZE})
+ endif ()
+ set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH};${INSTALL_PREFIX}/lib${LIB_SUFFIX}/cef)
endif ()
list(APPEND media_plugin_cef_LINK_LIBRARIES llwindow )
elseif (DARWIN)
@@ -147,14 +150,23 @@ if (INSTALL)
DESTINATION ${_LIB}
)
elseif (LINUX)
- if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+ if (USE_FLATPAK)
+ set(_LIB lib${ADDRESS_SIZE})
+ elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
set(_LIB lib/${ARCH}-linux-gnu/${VIEWER_BINARY_NAME})
elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
set(_LIB lib${ADDRESS_SIZE}/${VIEWER_BINARY_NAME})
else ()
set(_LIB lib/${VIEWER_BINARY_NAME})
endif ()
- if (${LINUX_DISTRO} MATCHES arch)
+ if (USE_FLATPAK)
+ install(
+ PROGRAMS
+ ${AUTOBUILD_INSTALL_DIR}/bin/release/chrome-sandbox
+ ${AUTOBUILD_INSTALL_DIR}/bin/release/dullahan_host
+ DESTINATION libexec
+ )
+ elseif (${LINUX_DISTRO} MATCHES arch)
install(
PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/dullahan_host
DESTINATION lib/${VIEWER_BINARY_NAME}
@@ -173,17 +185,6 @@ if (INSTALL)
)
endif ()
if (NOT (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora)))
- file(MAKE_DIRECTORY ${AUTOBUILD_INSTALL_DIR}/lib/release/${VIEWER_BINARY_NAME})
- file(CREATE_LINK
- "../libGLESv2.so"
- "${AUTOBUILD_INSTALL_DIR}/lib/release/${VIEWER_BINARY_NAME}/libGLESv2.so"
- SYMBOLIC
- )
- file(CREATE_LINK
- "../libvulkan.so.1"
- "${AUTOBUILD_INSTALL_DIR}/lib/release/${VIEWER_BINARY_NAME}/libvulkan.so.1"
- SYMBOLIC
- )
install(
FILES
${ARCH_PREBUILT_DIRS_RELEASE}/libcef.so
@@ -191,8 +192,6 @@ if (INSTALL)
${ARCH_PREBUILT_DIRS_RELEASE}/libEGL.so
${ARCH_PREBUILT_DIRS_RELEASE}/v8_context_snapshot.bin
${ARCH_PREBUILT_DIRS_RELEASE}/vk_swiftshader_icd.json
- ${ARCH_PREBUILT_DIRS_RELEASE}/${VIEWER_BINARY_NAME}/libGLESv2.so
- ${ARCH_PREBUILT_DIRS_RELEASE}/${VIEWER_BINARY_NAME}/libvulkan.so.1
${AUTOBUILD_INSTALL_DIR}/resources/chrome_100_percent.pak
${AUTOBUILD_INSTALL_DIR}/resources/chrome_200_percent.pak
${AUTOBUILD_INSTALL_DIR}/resources/icudtl.dat
@@ -203,6 +202,32 @@ if (INSTALL)
DIRECTORY ${AUTOBUILD_INSTALL_DIR}/resources/locales
DESTINATION ${_LIB}
)
+ if (USE_FLATPAK)
+ install(
+ FILES
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libGLESv2.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvulkan.so.1
+ DESTINATION ${_LIB}
+ )
+ else ()
+ file(MAKE_DIRECTORY ${AUTOBUILD_INSTALL_DIR}/lib/release/${VIEWER_BINARY_NAME})
+ file(CREATE_LINK
+ "../libGLESv2.so"
+ "${AUTOBUILD_INSTALL_DIR}/lib/release/${VIEWER_BINARY_NAME}/libGLESv2.so"
+ SYMBOLIC
+ )
+ file(CREATE_LINK
+ "../libvulkan.so.1"
+ "${AUTOBUILD_INSTALL_DIR}/lib/release/${VIEWER_BINARY_NAME}/libvulkan.so.1"
+ SYMBOLIC
+ )
+ install(
+ FILES
+ ${ARCH_PREBUILT_DIRS_RELEASE}/${VIEWER_BINARY_NAME}/libGLESv2.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/${VIEWER_BINARY_NAME}/libvulkan.so.1
+ DESTINATION ${_LIB}
+ )
+ endif ()
endif ()
elseif (WINDOWS)
set(_LIB llplugin)
diff --git a/indra/media_plugins/libvlc/CMakeLists.txt b/indra/media_plugins/libvlc/CMakeLists.txt
index 96790a8037..3177b3298d 100644
--- a/indra/media_plugins/libvlc/CMakeLists.txt
+++ b/indra/media_plugins/libvlc/CMakeLists.txt
@@ -87,6 +87,22 @@ if (INSTALL)
/Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib/libvlccore.dylib
DESTINATION ${_LIB}/plugins
)
+ elseif (USE_FLATPAK)
+ set(_LIB lib${ADDRESS_SIZE})
+ install(
+ DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}/vlc
+ DESTINATION ${_LIB}
+ )
+ install(
+ FILES
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvlc.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvlc.so.5
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvlc.so.5.6.1
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvlccore.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvlccore.so.9
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvlccore.so.9.0.1
+ DESTINATION ${_LIB}
+ )
elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
set(_LIB lib/${ARCH}-linux-gnu/${VIEWER_BINARY_NAME})
elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
diff --git a/indra/newview/ViewerInstall.cmake b/indra/newview/ViewerInstall.cmake
index 46b2967f2c..cce94b0d46 100644
--- a/indra/newview/ViewerInstall.cmake
+++ b/indra/newview/ViewerInstall.cmake
@@ -226,26 +226,42 @@ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}
)
if (LINUX)
- if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
- set(_LIB lib/${ARCH}-linux-gnu)
- elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
+ if (USE_FLATPAK)
set(_LIB lib${ADDRESS_SIZE})
+ elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+ set(_LIB lib/${ARCH}-linux-gnu/${VIEWER_BINARY_NAME})
+ elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
+ set(_LIB lib${ADDRESS_SIZE}/${VIEWER_BINARY_NAME})
else ()
- set(_LIB lib)
+ set(_LIB lib/${VIEWER_BINARY_NAME})
endif ()
if (USE_DISCORD)
install(
FILES ${ARCH_PREBUILT_DIRS_RELEASE}/libdiscord_partner_sdk.so
- DESTINATION ${_LIB}/${VIEWER_BINARY_NAME}
+ DESTINATION ${_LIB}
+ )
+ endif ()
+ if (USE_FLATPAK)
+ install(
+ FILES
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libalut.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libalut.so.0
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libalut.so.0.0.0
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libopenal.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libopenal.so.1
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libopenal.so.1.24.2
+ DESTINATION ${_LIB}
)
endif ()
if (USE_FMODSTUDIO)
- install(FILES
- ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.so
- ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.so.13
- ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.so.13.34
- DESTINATION ${_LIB}/${VIEWER_BINARY_NAME})
- endif (USE_FMODSTUDIO)
+ install(
+ FILES
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.so
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.so.13
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.so.13.34
+ DESTINATION ${_LIB}
+ )
+ endif ()
endif (LINUX)
install(DIRECTORY skins app_settings fonts