summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-02-26 09:22:17 +0100
committerJunio C Hamano <gitster@pobox.com>2025-02-26 09:09:36 -0800
commiteee25bbd84e2c3c00ea75080133374c48eeb3240 (patch)
treed9c6486ac84e20a854c0e876b5414d1700883a90
parentf5fac42e07cc7152ee29d656c8af6dbfb10e92e4 (diff)
downloadgit-eee25bbd84e2c3c00ea75080133374c48eeb3240.tar.xz
meson: drop separate version library
When building `libgit.a` we link it against a `libgit_version.a` library that contains the version information that we inject at build time. The intent of this is to avoid rebuilding all of `libgit.a` whenever the version changes. But that wouldn't happen in the first place, as we know to just rebuild the files that depend on the generated "version-def.h" file. This is an artifact of an earlier version of the Meson build infra that didn't ultimately land. We didn't yet have "version-def.h", and instead injected the version via preprocessor directives. And here we would have rebuilt all of `libgit.a` indeed in case the version changes, because the preprocessor directive applied to all files. Stop building the separate library and instead add "version-def.h" to the list of source files directly. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--meson.build21
1 files changed, 5 insertions, 16 deletions
diff --git a/meson.build b/meson.build
index 39d15ee6cb..c8df19804a 100644
--- a/meson.build
+++ b/meson.build
@@ -478,6 +478,7 @@ libgit_sources = [
'userdiff.c',
'utf8.c',
'varint.c',
+ 'version.c',
'versioncmp.c',
'walker.c',
'wildmatch.c',
@@ -1542,26 +1543,14 @@ version_def_h = custom_target(
depends: [git_version_file],
env: version_gen_environment,
)
-
-# Build a separate library for "version.c" so that we do not have to rebuild
-# everything when the current Git commit changes.
-libgit_version_library = static_library('git-version',
- sources: [
- 'version.c',
- version_def_h,
- ],
- c_args: libgit_c_args + [
- '-DGIT_VERSION_H="' + version_def_h.full_path() + '"',
- ],
- dependencies: libgit_dependencies,
- include_directories: libgit_include_directories,
-)
+libgit_sources += version_def_h
libgit = declare_dependency(
link_with: static_library('git',
sources: libgit_sources,
- c_args: libgit_c_args,
- link_with: libgit_version_library,
+ c_args: libgit_c_args + [
+ '-DGIT_VERSION_H="' + version_def_h.full_path() + '"',
+ ],
dependencies: libgit_dependencies,
include_directories: libgit_include_directories,
),