瀏覽代碼

x11: Improve logic for cross-dependencies between freetype, zlib and libpng

Fixes #7373.

(cherry picked from commit d945c4e58ea1b49db3e0e96be46751b2d7fa808a)
Rémi Verschelde 8 年之前
父節點
當前提交
5672852351
共有 1 個文件被更改,包括 13 次插入2 次删除
  1. 13 2
      platform/x11/detect.py

+ 13 - 2
platform/x11/detect.py

@@ -139,6 +139,13 @@ def configure(env):
     if (env['builtin_libwebp'] == 'no'):
         env.ParseConfig('pkg-config libwebp --cflags --libs')
 
+    # freetype depends on libpng and zlib, so bundling one of them while keeping others
+    # as shared libraries leads to weird issues
+    if (env['builtin_freetype'] == 'yes' or env['builtin_libpng'] == 'yes' or env['builtin_zlib'] == 'yes'):
+        env['builtin_freetype'] = 'yes'
+        env['builtin_libpng'] = 'yes'
+        env['builtin_zlib'] = 'yes'
+
     if (env['builtin_freetype'] == 'no'):
         env.ParseConfig('pkg-config freetype2 --cflags --libs')
 
@@ -200,10 +207,14 @@ def configure(env):
         else:
             print("PulseAudio development libraries not found, disabling driver")
 
+    if (env['builtin_zlib'] == 'no'):
+        env.ParseConfig('pkg-config zlib --cflags --libs')
+
     env.Append(CPPFLAGS=['-DX11_ENABLED', '-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DGLES_OVER_GL'])
-    env.Append(LIBS=['GL', 'pthread', 'z'])
+    env.Append(LIBS=['GL', 'pthread'])
+
     if (platform.system() == "Linux"):
-        env.Append(LIBS='dl')
+        env.Append(LIBS=['dl'])
     # env.Append(CPPFLAGS=['-DMPC_FIXED_POINT'])
 
 # host compiler is default..