From: Zbigniew Jędrzejewski-Szmek Date: Wed, 13 Mar 2024 17:33:59 +0000 (+0100) Subject: meson: always use vcs_tag X-Git-Tag: v256-rc1~535^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F31771%2Fhead;p=thirdparty%2Fsystemd.git meson: always use vcs_tag The branch with configure_file() was broken: meson doesn't know that this file is a prerequisite for other targets, so partial rebuilds were broken. Easy reproducer: git mv .git{,.no} touch meson build && ninja -C build src/basic/libbasic.a rm build/version.h ninja -C build src/basic/libbasic.a Using vcs_tag() also in that case makes meson always build the file. (Combined with the issue fixed in previous commit, I was encountering failed builds quite often.) Fixes 3f6ce3d4f04de0f765bb3bde0e400d0823829486. --- diff --git a/meson.build b/meson.build index ddda3d71812..078ba822ea1 100644 --- a/meson.build +++ b/meson.build @@ -1853,20 +1853,15 @@ endif conf.set_quoted('VERSION_TAG', version_tag) vcs_tag = get_option('vcs-tag') -if vcs_tag and fs.exists(project_source_root / '.git') - version_h = vcs_tag( - input : 'src/version/version.h.in', - output : 'version.h', - fallback : '', - command : ['sh', '-c', 'echo "-g$(git -C . describe --abbrev=7 --match="" --always --dirty=^)"'], - ) -else - version_h = configure_file( - input : 'src/version/version.h.in', - output : 'version.h', - configuration : configuration_data({'VCS_TAG' : ''}), - ) -endif +command = ['sh', '-c', + vcs_tag and fs.exists(project_source_root / '.git') ? + 'echo "-g$(git -C . describe --abbrev=7 --match="" --always --dirty=^)"' : ':'] +version_h = vcs_tag( + input : 'src/version/version.h.in', + output : 'version.h', + fallback : '', + command : command, +) shared_lib_tag = get_option('shared-lib-tag') if shared_lib_tag == ''