Prechádzať zdrojové kódy

cope with pkgconfig ImportError

Thomas Waldmann 6 rokov pred
rodič
commit
1579d58b3e
5 zmenil súbory, kde vykonal 22 pridanie a 24 odobranie
  1. 10 4
      setup.py
  2. 3 5
      setup_b2.py
  3. 3 5
      setup_crypto.py
  4. 3 5
      setup_lz4.py
  5. 3 5
      setup_zstd.py

+ 10 - 4
setup.py

@@ -152,16 +152,22 @@ if not on_rtd:
                 result[k].extend(v)
         return result
 
+    try:
+        import pkgconfig as pc
+    except ImportError:
+        print('Warning: can not import pkgconfig python package.')
+        pc = None
+
     crypto_ext_kwargs = members_appended(
         dict(sources=[crypto_ll_source, crypto_helpers]),
-        setup_crypto.crypto_ext_kwargs(),
-        setup_b2.b2_ext_kwargs(prefer_system_libb2),
+        setup_crypto.crypto_ext_kwargs(pc),
+        setup_b2.b2_ext_kwargs(pc, prefer_system_libb2),
     )
 
     compress_ext_kwargs = members_appended(
         dict(sources=[compress_source]),
-        setup_lz4.lz4_ext_kwargs(prefer_system_liblz4),
-        setup_zstd.zstd_ext_kwargs(prefer_system_libzstd, multithreaded=False, legacy=False),
+        setup_lz4.lz4_ext_kwargs(pc, prefer_system_liblz4),
+        setup_zstd.zstd_ext_kwargs(pc, prefer_system_libzstd, multithreaded=False, legacy=False),
     )
 
     ext_modules += [

+ 3 - 5
setup_b2.py

@@ -21,7 +21,7 @@ def multi_join(paths, *path_segments):
     return [os.path.join(*(path_segments + (path,))) for path in paths]
 
 
-def b2_ext_kwargs(prefer_system):
+def b2_ext_kwargs(pc, prefer_system):
     if prefer_system:
         system_prefix = os.environ.get('BORG_LIBB2_PREFIX')
         if system_prefix:
@@ -30,11 +30,9 @@ def b2_ext_kwargs(prefer_system):
                         library_dirs=[os.path.join(system_prefix, 'lib')],
                         libraries=['b2'])
 
-        import pkgconfig
-
-        if pkgconfig.installed('libb2', '>= 0.98.1'):
+        if pc and pc.installed('libb2', '>= 0.98.1'):
             print('Detected and preferring libb2 [via pkg-config]')
-            return pkgconfig.parse('libb2')
+            return pc.parse('libb2')
 
     print('Using bundled BLAKE2')
     sources = multi_join(b2_sources, bundled_path)

+ 3 - 5
setup_crypto.py

@@ -3,7 +3,7 @@
 import os
 
 
-def crypto_ext_kwargs():
+def crypto_ext_kwargs(pc):
     system_prefix = os.environ.get('BORG_OPENSSL_PREFIX')
     if system_prefix:
         print('Detected OpenSSL [via BORG_OPENSSL_PREFIX]')
@@ -11,10 +11,8 @@ def crypto_ext_kwargs():
                     library_dirs=[os.path.join(system_prefix, 'lib')],
                     libraries=['crypto'])
 
-    import pkgconfig
-
-    if pkgconfig.exists('libcrypto'):
+    if pc and pc.exists('libcrypto'):
         print('Detected OpenSSL [via pkg-config]')
-        return pkgconfig.parse('libcrypto')
+        return pc.parse('libcrypto')
 
     raise Exception('Could not find OpenSSL lib/headers, please set BORG_OPENSSL_PREFIX')

+ 3 - 5
setup_lz4.py

@@ -21,7 +21,7 @@ def multi_join(paths, *path_segments):
     return [os.path.join(*(path_segments + (path,))) for path in paths]
 
 
-def lz4_ext_kwargs(prefer_system):
+def lz4_ext_kwargs(pc, prefer_system):
     if prefer_system:
         system_prefix = os.environ.get('BORG_LIBLZ4_PREFIX')
         if system_prefix:
@@ -30,11 +30,9 @@ def lz4_ext_kwargs(prefer_system):
                         library_dirs=[os.path.join(system_prefix, 'lib')],
                         libraries=['lz4'])
 
-        import pkgconfig
-
-        if pkgconfig.installed('liblz4', '>= 1.7.0'):
+        if pc and pc.installed('liblz4', '>= 1.7.0'):
             print('Detected and preferring liblz4 [via pkg-config]')
-            return pkgconfig.parse('liblz4')
+            return pc.parse('liblz4')
 
     print('Using bundled LZ4')
     sources = multi_join(lz4_sources, bundled_path)

+ 3 - 5
setup_zstd.py

@@ -68,7 +68,7 @@ def multi_join(paths, *path_segments):
     return [os.path.join(*(path_segments + (path,))) for path in paths]
 
 
-def zstd_ext_kwargs(prefer_system, multithreaded=False, legacy=False):
+def zstd_ext_kwargs(pc, prefer_system, multithreaded=False, legacy=False):
     if prefer_system:
         system_prefix = os.environ.get('BORG_LIBZSTD_PREFIX')
         if system_prefix:
@@ -77,11 +77,9 @@ def zstd_ext_kwargs(prefer_system, multithreaded=False, legacy=False):
                         library_dirs=[os.path.join(system_prefix, 'lib')],
                         libraries=['zstd'])
 
-        import pkgconfig
-
-        if pkgconfig.installed('libzstd', '>= 1.3.0'):
+        if pc and pc.installed('libzstd', '>= 1.3.0'):
             print('Detected and preferring libzstd [via pkg-config]')
-            return pkgconfig.parse('libzstd')
+            return pc.parse('libzstd')
 
     print('Using bundled ZSTD')
     sources = multi_join(zstd_sources, bundled_path)