Kaynağa Gözat

Buildsystem: Use pkg-config for miniupnpc and mbedtls

Miniupnpc added pkg-config files in 2.2.3 but we require 2.2.8
https://github.com/miniupnp/miniupnp/commit/5a398006b90e35942ffd8015a9f792df9ec97fd8

MbedTLS added pkg-config files in 3.6.0 while we require 3.6.1
https://github.com/Mbed-TLS/mbedtls/blob/development/ChangeLog

Signed-off-by: Yevhen Babiichuk (DustDFG) <[email protected]>
Co-authored-by: Rémi Verschelde <[email protected]>
Yevhen Babiichuk (DustDFG) 9 ay önce
ebeveyn
işleme
a42b8e2413
1 değiştirilmiş dosya ile 7 ekleme ve 5 silme
  1. 7 5
      platform/linuxbsd/detect.py

+ 7 - 5
platform/linuxbsd/detect.py

@@ -279,16 +279,18 @@ def configure(env: "SConsEnvironment"):
         env.ParseConfig("pkg-config libwebp --cflags --libs")
 
     if not env["builtin_mbedtls"]:
-        # mbedTLS does not provide a pkgconfig config yet. See https://github.com/ARMmbed/mbedtls/issues/228
-        env.Append(LIBS=["mbedtls", "mbedcrypto", "mbedx509"])
+        # mbedTLS only provides a pkgconfig file since 3.6.0, but we still support 2.28.x,
+        # so fallback to manually specifying LIBS if it fails.
+        if os.system("pkg-config --exists mbedtls") == 0:  # 0 means found
+            env.ParseConfig("pkg-config mbedtls mbedcrypto mbedx509 --cflags --libs")
+        else:
+            env.Append(LIBS=["mbedtls", "mbedcrypto", "mbedx509"])
 
     if not env["builtin_wslay"]:
         env.ParseConfig("pkg-config libwslay --cflags --libs")
 
     if not env["builtin_miniupnpc"]:
-        # No pkgconfig file so far, hardcode default paths.
-        env.Prepend(CPPPATH=["/usr/include/miniupnpc"])
-        env.Append(LIBS=["miniupnpc"])
+        env.ParseConfig("pkg-config miniupnpc --cflags --libs")
 
     # On Linux wchar_t should be 32-bits
     # 16-bit library shouldn't be required due to compiler optimizations