aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-08-11 17:25:33 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-08-11 09:15:05 -0700
commitecede89b5d3b804fafcec0bab68fec1cfab519aa (patch)
tree456c676bcd1a483105883a7cbf2ab953aebe10b7
parent41bb5941e15e81891a4e3e9d4faf19ed2743c2c1 (diff)
downloadmeson-ecede89b5d3b804fafcec0bab68fec1cfab519aa.zip
meson-ecede89b5d3b804fafcec0bab68fec1cfab519aa.tar.gz
meson-ecede89b5d3b804fafcec0bab68fec1cfab519aa.tar.bz2
Fix FeatureNew false positive in vcs_tag
Fixes https://github.com/mesonbuild/meson/issues/3904
-rw-r--r--mesonbuild/interpreter.py6
-rwxr-xr-xrun_unittests.py10
2 files changed, 15 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index fd0385d..50d6148 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3098,7 +3098,7 @@ root and issuing %s.
regex_selector] + vcs_cmd
kwargs.setdefault('build_by_default', True)
kwargs.setdefault('build_always_stale', True)
- return self.func_custom_target(node, [kwargs['output']], kwargs)
+ return self._func_custom_target_impl(node, [kwargs['output']], kwargs)
@FeatureNew('subdir_done', '0.46.0')
@stringArgs
@@ -3119,6 +3119,10 @@ root and issuing %s.
raise InterpreterException('custom_target: Only one positional argument is allowed, and it must be a string name')
if 'depfile' in kwargs and ('@BASENAME@' in kwargs['depfile'] or '@PLAINNAME@' in kwargs['depfile']):
FeatureNew('substitutions in custom_target depfile', '0.47.0').use(self.subproject)
+ return self._func_custom_target_impl(node, args, kwargs)
+
+ def _func_custom_target_impl(self, node, args, kwargs):
+ 'Implementation-only, without FeatureNew checks, for internal use'
name = args[0]
kwargs['install_mode'] = self._get_kwarg_install_mode(kwargs)
tg = CustomTargetHolder(build.CustomTarget(name, self.subdir, self.subproject, kwargs), self)
diff --git a/run_unittests.py b/run_unittests.py
index 6e50172..45b48f3 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -2761,6 +2761,16 @@ class FailureTests(BasePlatformTests):
".*WARNING.*Project targetting.*but.*",
meson_version='>= 0.41.0')
+ def test_vcs_tag_featurenew_build_always_stale(self):
+ 'https://github.com/mesonbuild/meson/issues/3904'
+ vcs_tag = '''version_data = configuration_data()
+ version_data.set('PROJVER', '@VCS_TAG@')
+ vf = configure_file(output : 'version.h.in', configuration: version_data)
+ f = vcs_tag(input : vf, output : 'version.h')
+ '''
+ msg = '.*WARNING:.*feature.*build_always_stale.*custom_target.*'
+ self.assertMesonDoesNotOutput(vcs_tag, msg, meson_version='>=0.43')
+
class WindowsTests(BasePlatformTests):
'''