]> de.git.xonotic.org Git - xonotic/netradiant.git/commitdiff
bundle: do not bundle gtk and other deps on linux 151/head
authorThomas Debesse <dev@illwieckz.net>
Mon, 5 Aug 2019 03:02:55 +0000 (05:02 +0200)
committerThomas Debesse <dev@illwieckz.net>
Mon, 5 Aug 2019 17:01:31 +0000 (19:01 +0200)
- gtk is not easily bundlable on linux because it looks for harcoded system path to optional
  shared libraries like image codecs, theme engines, sound notification system, etc.
  so expect user to install gtk first
- since we ask user to instal gtk, we can also ask them to install gtkglext,
  which is likely to pull gtk itself, x11 and gl dependencies
- old fontconfig does not work correctly if newer fontconfig configuration is installed
- if gtk and fontconfig is installed, freetype is

bundle/CMakeLists.txt
library-bundler

index 1e2546d06d4060cfa164a5859a47871238bacbb4..eb09c24daa56053b2f1713e0bab27b8b87a1e00b 100644 (file)
@@ -1,5 +1,6 @@
 if (WIN32)
     set(BUNDLE_OS_NAME "windows")
+       set(BUNDLE_SHARE ON)
 elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
     set(BUNDLE_OS_NAME "linux")
 else ()
@@ -15,6 +16,12 @@ add_custom_target(bundle ALL
 
 install(DIRECTORY
     ${PROJECT_BINARY_DIR}/lib
-    ${PROJECT_BINARY_DIR}/share
     DESTINATION ${CMAKE_INSTALL_PREFIX}
 )
+
+if (BUNDLE_SHARE)
+    install(DIRECTORY
+        ${PROJECT_BINARY_DIR}/share
+        DESTINATION ${CMAKE_INSTALL_PREFIX}
+    )
+endif ()
index 2758de7ab4e3abbb7b3bef7dc6dbaccce5c701e7..ceac213fc61a4d99e667b9dc7f14de2664fcc1fe 100755 (executable)
@@ -38,7 +38,16 @@ Common::stripLdd () {
 Multi::excludeLdd () {
        case "${system_name}" in
                'linux')
-                       egrep -v '/libc\.|/libdl\.|/libm\.|/libX|/libxcb|/libGL'
+                       # - always rely on up-to-date x11 and gl libraries, bundling them will break on future distros
+                       # - gtk is not easily bundlable on linux because it looks for harcoded system path to optional
+                       #   shared libraries like image codecs, theme engines, sound notification system, etc.
+                       #   so expect user to install gtk first
+                       # - since we ask user to instal gtk, we can also ask them to install gtkglext,
+                       #   which is likely to pull gtk itself, x11 and gl dependencies
+                       # - old fontconfig does not work correctly if newer fontconfig configuration is installed
+                       # - if gtk and fontconfig is installed, freetype is
+                       egrep -v '/libc\.|/libdl\.|/libm\.|/libX|/libxcb|/libGL' \
+                       | egrep -v '/libatk|/libgdk|/libgtk|/libgio|/libglib|/libgmodule|/libgobject|/libfontconfig|/libfreetype'
                        ;;
                'windows')
                        egrep -i '\.dll => [A-Z]:\\msys64\\' \