summaryrefslogtreecommitdiff
blob: d4d75a172d63a62d4493a4252d3bcce542c99a59 (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
From 430c6ffb65cd839be5ba6266a89f645afa8f9442 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sun, 14 Oct 2018 12:30:56 +0200
Subject: [PATCH] setup.py: Support specifying custom --pkgconfigdir

Support overriding --pkgconfigdir for whenever the autodetection
gives incorrect result (e.g. PyPy).  Fixes #119.
---
 setup.py | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/setup.py b/setup.py
index 36641d9..75c8888 100755
--- a/setup.py
+++ b/setup.py
@@ -14,6 +14,7 @@ except ImportError:
 from distutils.core import Extension, Command, Distribution
 from distutils.ccompiler import new_compiler
 from distutils.sysconfig import customize_compiler
+from distutils.util import change_root
 from distutils import log
 from distutils import sysconfig
 
@@ -265,11 +266,15 @@ class test_cmd(Command):
 
 class install_pkgconfig(Command):
     description = "install .pc file"
-    user_options = []
+    user_options = [
+        ('pkgconfigdir=', None, 'pkg-config file install directory'),
+    ]
 
     def initialize_options(self):
+        self.root = None
         self.install_base = None
         self.install_data = None
+        self.pkgconfigdir = None
         self.compiler_type = None
         self.outfiles = []
 
@@ -280,6 +285,11 @@ class install_pkgconfig(Command):
             ('install_data', 'install_data'),
         )
 
+        self.set_undefined_options(
+            'install',
+            ('root', 'root'),
+        )
+
         self.set_undefined_options(
             'build_ext',
             ('compiler_type', 'compiler_type'),
@@ -315,8 +325,13 @@ class install_pkgconfig(Command):
                 "Skipping install_pkgconfig, not supported with MSVC")
             return
 
-        python_lib = sysconfig.get_python_lib(True, True, self.install_data)
-        pkgconfig_dir = os.path.join(os.path.dirname(python_lib), 'pkgconfig')
+        if self.pkgconfigdir is None:
+            python_lib = sysconfig.get_python_lib(True, True,
+                                                  self.install_data)
+            pkgconfig_dir = os.path.join(os.path.dirname(python_lib),
+                                         'pkgconfig')
+        else:
+            pkgconfig_dir = change_root(self.root, self.pkgconfigdir)
         self.mkpath(pkgconfig_dir)
 
         pcname = "py3cairo.pc" if sys.version_info[0] == 3 else "pycairo.pc"
-- 
2.19.1