View | Details | Raw Unified | Return to bug 229086
Collapse All | Expand All

(-)Makefile (-2 / +1 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	meson
4
PORTNAME=	meson
5
PORTVERSION=	0.46.0
5
PORTVERSION=	0.46.1
6
PORTREVISION=	2
7
CATEGORIES=	devel python
6
CATEGORIES=	devel python
8
MASTER_SITES=	https://github.com/mesonbuild/${PORTNAME}/releases/download/${PORTVERSION}/
7
MASTER_SITES=	https://github.com/mesonbuild/${PORTNAME}/releases/download/${PORTVERSION}/
9
8
(-)distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1524914549
1
TIMESTAMP = 1529220278
2
SHA256 (meson-0.46.0.tar.gz) = b7df91b01a358a8facdbfa33596a47cda38a760435ab55e1985c0bff06a9cbf0
2
SHA256 (meson-0.46.1.tar.gz) = 19497a03e7e5b303d8d11f98789a79aba59b5ad4a81bd00f4d099be0212cee78
3
SIZE (meson-0.46.0.tar.gz) = 1200001
3
SIZE (meson-0.46.1.tar.gz) = 1203713
(-)files/patch-pkgconfig (-32 lines)
Lines 1-32 Link Here
1
From cbc2f2d1df769123caa2e4562dbe1809cca1304d Mon Sep 17 00:00:00 2001
2
From: Jussi Pakkanen <jpakkane@gmail.com>
3
Date: Sun, 29 Apr 2018 21:43:24 +0300
4
Subject: [PATCH] Keep separator spaces in pkg-config declarations. Closes
5
 #3479.
6
7
---
8
 mesonbuild/modules/pkgconfig.py                 |  6 ++++--
9
 run_unittests.py                                | 11 +++++++++++
10
 test cases/unit/31 pkgconfig format/meson.build | 12 ++++++++++++
11
 test cases/unit/31 pkgconfig format/somelib.c   |  5 +++++
12
 4 files changed, 32 insertions(+), 2 deletions(-)
13
 create mode 100644 test cases/unit/31 pkgconfig format/meson.build
14
 create mode 100644 test cases/unit/31 pkgconfig format/somelib.c
15
16
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
17
index a3ba973f3..419a14c77 100644
18
--- mesonbuild/modules/pkgconfig.py
19
+++ mesonbuild/modules/pkgconfig.py
20
@@ -139,8 +139,10 @@ def add_version_reqs(self, name, version_reqs):
21
         if version_reqs:
22
             if name not in self.version_reqs:
23
                 self.version_reqs[name] = set()
24
-            # We could have '>=1.0' or '>= 1.0', remove spaces to normalize
25
-            new_vreqs = [s.replace(' ', '') for s in mesonlib.stringlistify(version_reqs)]
26
+            # Note that pkg-config is picky about whitespace.
27
+            # 'foo > 1.2' is ok but 'foo>1.2' is not.
28
+            # foo, bar' is ok, but 'foo,bar' is not.
29
+            new_vreqs = [s for s in mesonlib.stringlistify(version_reqs)]
30
             self.version_reqs[name].update(new_vreqs)
31
 
32
     def split_version_req(self, s):
(-)files/patch-pkgconfig-internal (-67 lines)
Lines 1-67 Link Here
1
From a3b2ae8ebcdcebd68b8a217d03102c6d03fcb766 Mon Sep 17 00:00:00 2001
2
From: Nirbheek Chauhan <nirbheek@centricular.com>
3
Date: Tue, 1 May 2018 17:54:54 +0530
4
Subject: [PATCH] pkgconfig: Don't expose internal libraries in .pc files
5
6
Libraries that have been linked with link_whole: are internal
7
implementation details and should never be exposed to the outside
8
world in either Libs: or Libs.private:
9
10
Closes https://github.com/mesonbuild/meson/issues/3509
11
---
12
 mesonbuild/build.py                             | 12 +++++++++---
13
 mesonbuild/modules/pkgconfig.py                 |  4 ++--
14
 run_unittests.py                                | 11 ++++++-----
15
 test cases/unit/31 pkgconfig format/meson.build |  5 +++--
16
 test cases/unit/31 pkgconfig format/somelib.c   |  4 +++-
17
 test cases/unit/31 pkgconfig format/someret.c   |  3 +++
18
 6 files changed, 26 insertions(+), 13 deletions(-)
19
 create mode 100644 test cases/unit/31 pkgconfig format/someret.c
20
21
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
22
index 3d531d181..a2d024aec 100644
23
--- mesonbuild/build.py
24
+++ mesonbuild/build.py
25
@@ -817,16 +817,22 @@ def get_outputs(self):
26
     def get_extra_args(self, language):
27
         return self.extra_args.get(language, [])
28
 
29
-    def get_dependencies(self, exclude=None):
30
+    def get_dependencies(self, exclude=None, internal=True):
31
         transitive_deps = []
32
         if exclude is None:
33
             exclude = []
34
-        for t in itertools.chain(self.link_targets, self.link_whole_targets):
35
+        if internal:
36
+            link_targets = itertools.chain(self.link_targets, self.link_whole_targets)
37
+        else:
38
+            # We don't want the 'internal' libraries when generating the
39
+            # `Libs:` and `Libs.private:` lists in pkg-config files.
40
+            link_targets = self.link_targets
41
+        for t in link_targets:
42
             if t in transitive_deps or t in exclude:
43
                 continue
44
             transitive_deps.append(t)
45
             if isinstance(t, StaticLibrary):
46
-                transitive_deps += t.get_dependencies(transitive_deps + exclude)
47
+                transitive_deps += t.get_dependencies(transitive_deps + exclude, internal)
48
         return transitive_deps
49
 
50
     def get_source_subdir(self):
51
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
52
index 419a14c77..365d3cd37 100644
53
--- mesonbuild/modules/pkgconfig.py
54
+++ mesonbuild/modules/pkgconfig.py
55
@@ -123,10 +123,10 @@ def _process_libs(self, libs, public):
56
                     if not hasattr(obj, 'generated_pc'):
57
                         obj.generated_pc = self.name
58
                 if isinstance(obj, build.StaticLibrary) and public:
59
-                    self.add_pub_libs(obj.get_dependencies())
60
+                    self.add_pub_libs(obj.get_dependencies(internal=False))
61
                     self.add_pub_libs(obj.get_external_deps())
62
                 else:
63
-                    self.add_priv_libs(obj.get_dependencies())
64
+                    self.add_priv_libs(obj.get_dependencies(internal=False))
65
                     self.add_priv_libs(obj.get_external_deps())
66
             elif isinstance(obj, str):
67
                 processed_libs.append(obj)

Return to bug 229086