summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2026-07-16 10:06:59 +0800
committerErik Kundiman <erik@megapahit.org>2026-07-16 10:06:59 +0800
commitc26abf15e6ca3e867488190166fdc68cad7c026e (patch)
treee8dd680e250ae07b640d6c465a87722d4a012168
parent0de2e3570d506e05b76d46ed356082dba2f5d0a8 (diff)
Strip Dullahan/CEF binaries on Linux
Stripping dullahan_host on Fedora (maybe Arch too) needs to be done after it's copied to prebuilt directory cause somehow when done before, it wouldn't work somehow. Also, placing the snippet along with the rest (down there) would cause the file to be corrupt (the ELF patching must have been executed when the stripping wasn't done yet). Stripping CEF binaries on non Arch/Fedora is done before they're installed to avoid eating too much storage from having unstripped copies. Flatpak already strips, so no need for additional stripping for Flatpak only files. Gentoo already strips too but it's okay, no need to rule Flatpak and/or Gentoo out.
-rw-r--r--indra/cmake/CEFPlugin.cmake68
1 files changed, 50 insertions, 18 deletions
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 2546ec7993..34b267a756 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -59,6 +59,12 @@ if (${LINUX_DISTRO} MATCHES arch)
COPY ${CMAKE_BINARY_DIR}/dullahan-1.31.0-CEF_148.0.9/dullahan_host
DESTINATION ${LIBS_PREBUILT_DIR}/bin/release
)
+ if (CMAKE_BUILD_TYPE MATCHES Release)
+ execute_process(
+ COMMAND ${CMAKE_STRIP} dullahan_host
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release
+ )
+ endif ()
file(
COPY ${CMAKE_BINARY_DIR}/dullahan-1.31.0-CEF_148.0.9/libdullahan.a
DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
@@ -127,6 +133,12 @@ elseif (${LINUX_DISTRO} MATCHES fedora)
COPY ${CMAKE_BINARY_DIR}/dullahan-1.29.0-CEF_146.0.12/dullahan_host
DESTINATION ${LIBS_PREBUILT_DIR}/bin/release
)
+ if (CMAKE_BUILD_TYPE MATCHES Release)
+ execute_process(
+ COMMAND ${CMAKE_STRIP} dullahan_host
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release
+ )
+ endif ()
file(
COPY ${CMAKE_BINARY_DIR}/dullahan-1.29.0-CEF_146.0.12/libdullahan.a
DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
@@ -172,11 +184,29 @@ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
-DPROJECT_ARCH:STRING=${CMAKE_SYSTEM_PROCESSOR}
)
if (${DULLAHAN_RESULT})
+ if (CMAKE_BUILD_TYPE MATCHES Release)
+ execute_process(
+ COMMAND ${CMAKE_STRIP}
+ chrome-sandbox
+ libEGL.so
+ libGLESv2.so
+ libcef.so
+ libvk_swiftshader.so
+ libvulkan.so.1
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40/_deps/cef_prebuild-src/${CMAKE_BUILD_TYPE}
+ )
+ endif ()
execute_process(
COMMAND ${CMAKE_MAKE_PROGRAM} install
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40
OUTPUT_VARIABLE dullahan_installed
)
+ if (CMAKE_BUILD_TYPE MATCHES Release)
+ execute_process(
+ COMMAND ${CMAKE_STRIP} dullahan_host
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release
+ )
+ endif ()
file(
COPY
${CMAKE_BINARY_DIR}/dullahan-1.24.0-CEF_139.0.40/src/dullahan.h
@@ -189,23 +219,6 @@ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
else ()
use_prebuilt_binary(dullahan)
endif ()
-
-execute_process(
- COMMAND patchelf --set-rpath ${INSTALL_LIBRARY_DIR} bin/release/dullahan_host
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}
-)
-
-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${LIB_SUFFIX}/cef bin/release/dullahan_host
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}
- )
-endif ()
-
target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/cef)
if (WINDOWS)
@@ -270,13 +283,32 @@ elseif (DARWIN)
-output libdullahan.a
WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
)
-
elseif (LINUX)
+ if (NOT USE_FLATPAK)
+ execute_process(
+ COMMAND patchelf --set-rpath ${INSTALL_LIBRARY_DIR} dullahan_host
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release
+ )
+ endif ()
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 ()
target_link_directories( ll::cef INTERFACE ${INSTALL_PREFIX}/lib${LIB_SUFFIX}/cef )
+ execute_process(
+ COMMAND patchelf --add-rpath ${INSTALL_PREFIX}/lib${LIB_SUFFIX}/cef dullahan_host
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release
+ )
+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND (CMAKE_BUILD_TYPE MATCHES Release))
+ execute_process(
+ COMMAND ${CMAKE_STRIP}
+ bin/release/chrome-sandbox
+ bin/release/dullahan_host
+ lib/release/libEGL.so
+ lib/release/libvk_swiftshader.so
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}
+ )
endif ()
target_link_libraries( ll::cef INTERFACE
libdullahan.a