aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2019-09-18 21:23:03 -0400
committerXavier Claessens <xclaesse@gmail.com>2019-10-01 13:06:45 -0400
commit484b721369957100ee6d2b76f17224a583e2bd86 (patch)
tree50e1340d6f72e584e82ce6718ff75accdc9d3ac3 /mesonbuild/build.py
parentf396c71c52a7a3589c2998fce000843fc1e73835 (diff)
downloadmeson-484b721369957100ee6d2b76f17224a583e2bd86.zip
meson-484b721369957100ee6d2b76f17224a583e2bd86.tar.gz
meson-484b721369957100ee6d2b76f17224a583e2bd86.tar.bz2
Fix link_with of a static library with an uninstalled static library
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 49d53c0..1530ae5 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -1062,8 +1062,15 @@ You probably should put it in link_with instead.''')
def get_external_deps(self):
return self.external_deps
+ def is_internal(self):
+ return isinstance(self, StaticLibrary) and not self.need_install
+
def link(self, target):
for t in listify(target, unholder=True):
+ if isinstance(self, StaticLibrary) and t.is_internal():
+ # When we're a static library and we link_with to an
+ # internal/convenience library, promote to link_whole.
+ return self.link_whole(t)
if not isinstance(t, (Target, CustomTargetIndex)):
raise InvalidArguments('{!r} is not a target.'.format(t))
if not t.is_linkable_target():