From cbe18e01e49613f0db30c563c80767b30325bf39 Mon Sep 17 00:00:00 2001 From: Alex Hirsch Date: Fri, 9 Mar 2018 18:42:44 +0100 Subject: Deprecate `build_always`, add `build_always_stale` Since `build_always` also adds a target to the set of default targets, this option is marked deprecated in favour of the new option `build_always_stale`. `build_always_stale` *only* marks the target to be always considered out of date, but does *not* add it to the set of default targets. The old behaviour can still be achieved by combining `build_always_stale` with `build_by_default`. fixes #1942 --- mesonbuild/build.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'mesonbuild/build.py') diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 331b552..c91bbe6 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -309,7 +309,7 @@ a hard error in the future.''' % name) self.subproject = subproject self.build_by_default = build_by_default self.install = False - self.build_always = False + self.build_always_stale = False self.option_overrides = {} def get_basename(self): @@ -1636,6 +1636,7 @@ class CustomTarget(Target): 'install_dir', 'install_mode', 'build_always', + 'build_always_stale', 'depends', 'depend_files', 'depfile', @@ -1788,9 +1789,16 @@ class CustomTarget(Target): self.install = False self.install_dir = [None] self.install_mode = None - self.build_always = kwargs.get('build_always', False) - if not isinstance(self.build_always, bool): - raise InvalidArguments('Argument build_always must be a boolean.') + if 'build_always' in kwargs and 'build_always_stale' in kwargs: + raise InvalidArguments('build_always and build_always_stale are mutually exclusive. Combine build_by_default and build_always_stale.') + elif 'build_always' in kwargs: + mlog.warning('build_always is deprecated. Combine build_by_default and build_always_stale instead.') + self.build_by_default = kwargs['build_always'] + self.build_always_stale = kwargs['build_always'] + elif 'build_always_stale' in kwargs: + self.build_always_stale = kwargs['build_always_stale'] + if not isinstance(self.build_always_stale, bool): + raise InvalidArguments('Argument build_always_stale must be a boolean.') extra_deps, depend_files = extract_as_list(kwargs, 'depends', 'depend_files', pop = False) for ed in extra_deps: while hasattr(ed, 'held_object'): -- cgit v1.1