summaryrefslogtreecommitdiffstats
path: root/version.c
diff options
context:
space:
mode:
authorToon Claes <toon@iotcl.com>2025-01-14 12:15:23 +0100
committerJunio C Hamano <gitster@pobox.com>2025-01-14 20:14:54 +0100
commit4771501c0a125dd3560391cbd716c63a281e8244 (patch)
treefd7ed6ba9a1dbba20cab6ff4c4c53265e768c776 /version.c
parentGit 2.48 (diff)
downloadgit-4771501c0a125dd3560391cbd716c63a281e8244.tar.xz
git-4771501c0a125dd3560391cbd716c63a281e8244.zip
meson: ensure correct version-def.h is used
To build the libgit-version library, Meson first generates `version-def.h` in the build directory. Then it compiles `version.c` into a library. During compilation, Meson tells to include both the build directory and the project root directory. However, when the user previously has compiled Git using Make, they will have a `version-def.h` file in project root directory as well. Because `version-def.h` is included in `version.c` using the #include directive with double quotes, some preprocessors will look for the header file in the same directory as the source file. This will cause compilation of `version.c` ran by Meson to include `version-def.h` previously made by Make, which might be out of date. To explicitly tell the preprocessor which `version-def.h` to use, pass the absolute path of this file as macro GIT_VERSION_H to the preprocessor using option `-D` and have `version.c` `#include GIT_VERSION_H`. To remain working with other build systems than Meson, include "version-def.h" if that macro is not defined. Co-authored-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Toon Claes <toon@iotcl.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rw-r--r--version.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/version.c b/version.c
index 4d763ab48d..4786c4e0a5 100644
--- a/version.c
+++ b/version.c
@@ -1,8 +1,13 @@
#include "git-compat-util.h"
#include "version.h"
-#include "version-def.h"
#include "strbuf.h"
+#ifndef GIT_VERSION_H
+# include "version-def.h"
+#else
+# include GIT_VERSION_H
+#endif
+
const char git_version_string[] = GIT_VERSION;
const char git_built_from_commit_string[] = GIT_BUILT_FROM_COMMIT;