summaryrefslogtreecommitdiff
blob: cb4a5f6cf7eb7778cfba40322c34d81e109de284 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
diff -Naur python/setup.py python/setup.py
--- python/setup.py 2015-12-30 22:21:46.000000000 +0100
+++ python/setup.py 2016-04-18 00:51:49.490809789 +0200
@@ -190,15 +190,27 @@
       extra_compile_args.append('-Werror')
       sys.argv.remove(warnings_as_errors)
 
+    inclD = ['.', '../src']
+    libD = []
+    try:
+        subprocess.check_call(['pkg-config', '--exists', 'protobuf'])
+        inclD += subprocess.check_output(['pkg-config','--variable=includedir','protobuf']).split()
+        libD = subprocess.check_output(['pkg-config','--variable=libdir','protobuf']).split()
+    except OSError as osex:
+        if osex.errno == errno.ENOENT:
+            info('pkg-config not found')
+        else:
+            warn("Running pkg-config failed - %s." % osex)
+            libD = ['../src/.libs']
     # C++ implementation extension
     ext_module_list.extend([
         Extension(
             "google.protobuf.pyext._message",
             glob.glob('google/protobuf/pyext/*.cc'),
-            include_dirs=[".", "../src"],
+            include_dirs=inclD,
             libraries=libraries,
             extra_objects=extra_objects,
-            library_dirs=['../src/.libs'],
+            library_dirs=libD,
             extra_compile_args=extra_compile_args,
         ),
         Extension(