mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
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>
This commit is contained in:
committed by
Junio C Hamano
parent
f5fac42e07
commit
eee25bbd84
21
meson.build
21
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,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user