diff options
author | Marcel Hollerbach <m.hollerbach@partner.samsung.com> | 2018-09-10 09:14:37 +0200 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-09-11 03:03:30 -0700 |
commit | 7ae3fbf88d0c5614f0966aa47b11cc4378fdabee (patch) | |
tree | ab6488b5e82221904ba87abcee5ca1dd017a4133 /mesonbuild/backend/backends.py | |
parent | c68460e2eeee5194cc81f3afdb213c11f11895ee (diff) | |
download | meson-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.py | 11 |
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) |