mirror of
https://github.com/systemd/systemd.git
synced 2025-01-09 01:18:19 +03:00
meson: Use configure_file when version-tag is specified
vcs_tag() is slow. When the version-tag meson option is set, we can use configure_file() directly to speed up incremental builds. Before (with version-tag set to v247): ``` ‣ Running build script... [1/418] Generating version.h with a custom command real 0m0.521s user 0m0.229s sys 0m0.067s ``` After (with version-tag set to v247): ``` ‣ Running build script... ninja: no work to do. real 0m0.094s user 0m0.048s sys 0m0.022s ```
This commit is contained in:
parent
bf1868c8d7
commit
064b8e2c99
25
meson.build
25
meson.build
@ -555,15 +555,24 @@ endif
|
||||
|
||||
#####################################################################
|
||||
|
||||
vcs_tagger = [project_source_root + '/tools/meson-vcs-tag.sh',
|
||||
project_source_root,
|
||||
get_option('version-tag'),
|
||||
meson.project_version()]
|
||||
version_tag = get_option('version-tag')
|
||||
if version_tag != ''
|
||||
vcs_data = configuration_data()
|
||||
vcs_data.set('VCS_TAG', version_tag)
|
||||
version_h = configure_file(configuration : vcs_data,
|
||||
input : 'src/version/version.h.in',
|
||||
output : 'version.h')
|
||||
else
|
||||
vcs_tagger = [
|
||||
project_source_root + '/tools/meson-vcs-tag.sh',
|
||||
project_source_root,
|
||||
meson.project_version()]
|
||||
|
||||
version_h = vcs_tag(
|
||||
input : 'src/version/version.h.in',
|
||||
output : 'version.h',
|
||||
command: vcs_tagger)
|
||||
version_h = vcs_tag(
|
||||
input : 'src/version/version.h.in',
|
||||
output : 'version.h',
|
||||
command: vcs_tagger)
|
||||
endif
|
||||
|
||||
versiondep = declare_dependency(sources: version_h)
|
||||
|
||||
|
@ -4,13 +4,7 @@ set -eu
|
||||
set -o pipefail
|
||||
|
||||
dir="$1"
|
||||
tag="$2"
|
||||
fallback="$3"
|
||||
|
||||
if [ -n "$tag" ]; then
|
||||
echo "$tag"
|
||||
exit 0
|
||||
fi
|
||||
fallback="$2"
|
||||
|
||||
# Apparently git describe has a bug where it always considers the work-tree
|
||||
# dirty when invoked with --git-dir (even though 'git status' is happy). Work
|
||||
|
Loading…
Reference in New Issue
Block a user