meson: add options to override build information
We inject various different kinds of build information into build artifacts, like the version string or the commit from which Git was built. Add options to let users explicitly override this information with Meson. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
cfa01e6da5
commit
1bc815c3d0
|
@ -219,6 +219,7 @@ asciidoc_conf = custom_target(
|
|||
input: meson.current_source_dir() / 'asciidoc.conf.in',
|
||||
output: 'asciidoc.conf',
|
||||
depends: [git_version_file],
|
||||
env: version_gen_environment,
|
||||
)
|
||||
|
||||
asciidoc_common_options = [
|
||||
|
|
13
meson.build
13
meson.build
|
@ -201,6 +201,16 @@ if get_option('sane_tool_path') != ''
|
|||
script_environment.prepend('PATH', get_option('sane_tool_path'))
|
||||
endif
|
||||
|
||||
# The environment used by GIT-VERSION-GEN. Note that we explicitly override
|
||||
# environment variables that might be set by the user. This is by design so
|
||||
# that we always use whatever Meson has configured instead of what is present
|
||||
# in the environment.
|
||||
version_gen_environment = script_environment
|
||||
version_gen_environment.set('GIT_BUILT_FROM_COMMIT', get_option('built_from_commit'))
|
||||
version_gen_environment.set('GIT_DATE', get_option('build_date'))
|
||||
version_gen_environment.set('GIT_USER_AGENT', get_option('user_agent'))
|
||||
version_gen_environment.set('GIT_VERSION', get_option('version'))
|
||||
|
||||
compiler = meson.get_compiler('c')
|
||||
|
||||
libgit_sources = [
|
||||
|
@ -1485,6 +1495,7 @@ git_version_file = custom_target(
|
|||
],
|
||||
input: meson.current_source_dir() / 'GIT-VERSION-FILE.in',
|
||||
output: 'GIT-VERSION-FILE',
|
||||
env: version_gen_environment,
|
||||
build_always_stale: true,
|
||||
)
|
||||
|
||||
|
@ -1501,6 +1512,7 @@ version_def_h = custom_target(
|
|||
# Depend on GIT-VERSION-FILE so that we don't always try to rebuild this
|
||||
# target for the same commit.
|
||||
depends: [git_version_file],
|
||||
env: version_gen_environment,
|
||||
)
|
||||
|
||||
# Build a separate library for "version.c" so that we do not have to rebuild
|
||||
|
@ -1544,6 +1556,7 @@ if host_machine.system() == 'windows'
|
|||
input: meson.current_source_dir() / 'git.rc.in',
|
||||
output: 'git.rc',
|
||||
depends: [git_version_file],
|
||||
env: version_gen_environment,
|
||||
)
|
||||
|
||||
common_main_sources += import('windows').compile_resources(git_rc,
|
||||
|
|
|
@ -16,6 +16,16 @@ option('runtime_prefix', type: 'boolean', value: false,
|
|||
option('sane_tool_path', type: 'string', value: '',
|
||||
description: 'A colon-separated list of paths to prepend to PATH if your tools in /usr/bin are broken.')
|
||||
|
||||
# Build information compiled into Git and other parts like documentation.
|
||||
option('build_date', type: 'string', value: '',
|
||||
description: 'Build date reported by our documentation.')
|
||||
option('built_from_commit', type: 'string', value: '',
|
||||
description: 'Commit that Git was built from reported by git-version(1).')
|
||||
option('user_agent', type: 'string', value: '',
|
||||
description: 'User agent reported to remote servers.')
|
||||
option('version', type: 'string', value: '',
|
||||
description: 'Version string reported by git-version(1) and other tools.')
|
||||
|
||||
# Features supported by Git.
|
||||
option('curl', type: 'feature', value: 'enabled',
|
||||
description: 'Build helpers used to access remotes with the HTTP transport.')
|
||||
|
|
Loading…
Reference in New Issue