aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorMarcel Hollerbach <m.hollerbach@partner.samsung.com>2018-09-10 09:14:37 +0200
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-09-11 03:03:30 -0700
commit7ae3fbf88d0c5614f0966aa47b11cc4378fdabee (patch)
treeab6488b5e82221904ba87abcee5ca1dd017a4133 /mesonbuild/backend/backends.py
parentc68460e2eeee5194cc81f3afdb213c11f11895ee (diff)
downloadmeson-7ae3fbf88d0c5614f0966aa47b11cc4378fdabee.zip
meson-7ae3fbf88d0c5614f0966aa47b11cc4378fdabee.tar.gz
meson-7ae3fbf88d0c5614f0966aa47b11cc4378fdabee.tar.bz2
mesonbuild: move subdir generation along link dep generation
The problem with the earlier position of the generation code was, that the results could not be cached, because the list of all link_deps was overall different. However, it shared a special kind of subsets with other build build targets. Generating the set of subdirs that are required for linking, alongside with the link dependencies brings the possibility of caching this. This reduces the buildting from 1 min. in efl down to 20 sec. And reduces the amount of 30872534 calls down. this saves ~40 sec.
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r--mesonbuild/backend/backends.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index a6bec06..8153ff7 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -394,12 +394,11 @@ class Backend:
return paths
def determine_rpath_dirs(self, target):
- link_deps = target.get_all_link_deps()
- result = OrderedSet()
- for ld in link_deps:
- if ld is target:
- continue
- result.add(self.get_target_dir(ld))
+ if self.environment.coredata.get_builtin_option('layout') == 'mirror':
+ result = target.get_link_dep_subdirs()
+ else:
+ result = OrderedSet()
+ result.add('meson-out')
result.update(self.rpaths_for_bundled_shared_libraries(target))
return list(result)