diff options
author | Alex Hirsch <w4rh4wk@bluephoenix.at> | 2018-03-09 18:42:44 +0100 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-06-18 10:49:40 +0000 |
commit | cbe18e01e49613f0db30c563c80767b30325bf39 (patch) | |
tree | 7d4dcba4347fa01aae1178d4ea072414c96d1f80 /mesonbuild/build.py | |
parent | d7466066e468f9297bcad480003af882920c1159 (diff) | |
download | meson-cbe18e01e49613f0db30c563c80767b30325bf39.zip meson-cbe18e01e49613f0db30c563c80767b30325bf39.tar.gz meson-cbe18e01e49613f0db30c563c80767b30325bf39.tar.bz2 |
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
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 16 |
1 files changed, 12 insertions, 4 deletions
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'): |