Default to project_version() in vcs_tag fallback

pull/1722/head
Peter Hutterer 8 years ago
parent 4413122676
commit 7a3be163cb
  1. 2
      docs/markdown/Reference-manual.md
  2. 5
      docs/markdown/Release-notes-for-0.41.0.md
  3. 4
      mesonbuild/interpreter.py
  4. 4
      test cases/common/73 vcstag/meson.build

@ -639,7 +639,7 @@ This command detects revision control commit information at build time and place
- `input` file to modify (e.g. `version.c.in`) (required)
- `output` file to write the results to (e.g. `version.c`) (required)
- `fallback` version number to use when no revision control information is present, such as when building from a release tarball (required)
- `fallback` version number to use when no revision control information is present, such as when building from a release tarball (defaults to `meson.project_version()`)
- `command` string list with the command to execute, see [`custom_target`](#custom_target) for details on how this command must be specified
- `replace_string` string in the input file to substitute with the commit information (defaults to `@VCS_TAG@`)

@ -12,3 +12,8 @@ Add features here as code is merged to master.
## Dependency Handler for LLVM
Native support for linking against LLVM using the `dependency` function.
## vcs_tag keyword fallback is is now optional
The `fallback` keyword in `vcs_tag` is now optional. If not given, its value
defaults to the return value of `meson.project_version()`.

@ -2024,9 +2024,9 @@ class Interpreter(InterpreterBase):
def func_vcs_tag(self, node, args, kwargs):
if 'input' not in kwargs or 'output' not in kwargs:
raise InterpreterException('Keyword arguments input and output must exist')
fallback = kwargs.pop('fallback', None)
fallback = kwargs.pop('fallback', self.project_version)
if not isinstance(fallback, str):
raise InterpreterException('Keyword argument fallback must exist and be a string.')
raise InterpreterException('Keyword argument fallback must be a string.')
replace_string = kwargs.pop('replace_string', '@VCS_TAG@')
regex_selector = '(.*)' # default regex selector for custom command: use complete output
vcs_cmd = kwargs.get('command', None)

@ -9,6 +9,10 @@ output : 'vcstag-custom.c',
command : ['git', 'show-ref', '-s', 'refs/heads/master'],
fallback : '1.0.0')
version_src_fallback = vcs_tag(input : 'vcstag.c.in',
output : 'vcstag-fallback.c')
executable('tagprog', 'tagprog.c', version_src)
executable('tagprog-custom', 'tagprog.c', version_src_custom)
executable('tagprog-fallback', 'tagprog.c', version_src_fallback)

Loading…
Cancel
Save