aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-09-17 11:46:42 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2020-10-13 17:55:16 -0400
commit173c115834e37acf2a66fd00fa4010e5765c39a9 (patch)
tree358449130cbe02a74e686cae046346c7ff53432d /mesonbuild
parenta20d7ad67d3c876785901349cfc990e4bf31778b (diff)
downloadmeson-173c115834e37acf2a66fd00fa4010e5765c39a9.zip
meson-173c115834e37acf2a66fd00fa4010e5765c39a9.tar.gz
meson-173c115834e37acf2a66fd00fa4010e5765c39a9.tar.bz2
Add wrap mode to disable auto promote
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/interpreter.py13
-rw-r--r--mesonbuild/wrap/__init__.py2
2 files changed, 9 insertions, 6 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 56bc72d..ad6f04e 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3166,12 +3166,13 @@ external dependencies (including libraries) must go to "dependencies".''')
# Load wrap files from this (sub)project.
wrap_mode = self.coredata.get_builtin_option('wrap_mode')
- subdir = os.path.join(self.subdir, spdirname)
- r = wrap.Resolver(self.environment.get_source_dir(), subdir, wrap_mode)
- if self.is_subproject():
- self.environment.wrap_resolver.merge_wraps(r)
- else:
- self.environment.wrap_resolver = r
+ if not self.is_subproject() or wrap_mode != WrapMode.nopromote:
+ subdir = os.path.join(self.subdir, spdirname)
+ r = wrap.Resolver(self.environment.get_source_dir(), subdir, wrap_mode)
+ if self.is_subproject():
+ self.environment.wrap_resolver.merge_wraps(r)
+ else:
+ self.environment.wrap_resolver = r
self.build.projects[self.subproject] = proj_name
mlog.log('Project name:', mlog.bold(proj_name))
diff --git a/mesonbuild/wrap/__init__.py b/mesonbuild/wrap/__init__.py
index 1771146..653f42a 100644
--- a/mesonbuild/wrap/__init__.py
+++ b/mesonbuild/wrap/__init__.py
@@ -40,6 +40,7 @@ string_to_value = {'default': 1,
'nofallback': 2,
'nodownload': 3,
'forcefallback': 4,
+ 'nopromote': 5,
}
class WrapMode(Enum):
@@ -47,6 +48,7 @@ class WrapMode(Enum):
nofallback = 2
nodownload = 3
forcefallback = 4
+ nopromote = 5
def __str__(self) -> str:
return self.name