commit 921f8b0df728222e8aa02f2e6324e1b57b440519
parent 1fb0126a086de32daf800b773337bc8fc7996221
Author: bfredl <bjorn.linse@gmail.com>
Date: Sun, 4 May 2025 09:49:10 +0200
fix(build): use correct cmake expression for $<CONFIG>
${CONFIG} is an empty string even when configuration is known at
configuration time. $<CONFIG> has to be used at "generation time"
Currently zig's reimplementation of cmake config headers does not
support $<CONFIG> so use a branch to pick the one which works.
Diffstat:
3 files changed, 7 insertions(+), 18 deletions(-)
diff --git a/build.zig b/build.zig
@@ -153,11 +153,12 @@ pub fn build(b: *std.Build) !void {
config_str = b.fmt("{s} -Dcross -Dtarget={s} (host: {s})", .{ config_str, try t.linuxTriple(b.allocator), try b.graph.host.result.linuxTriple(b.allocator) });
}
- const versiondef_step = b.addConfigHeader(.{ .style = .{ .cmake = b.path("src/versiondef.h.in") } }, .{
+ const versiondef_step = b.addConfigHeader(.{ .style = .{ .cmake = b.path("cmake.config/versiondef.h.in") } }, .{
.NVIM_VERSION_MAJOR = version.major,
.NVIM_VERSION_MINOR = version.minor,
.NVIM_VERSION_PATCH = version.patch,
.NVIM_VERSION_PRERELEASE = version.prerelease,
+ .NVIM_VERSION_MEDIUM = "",
.VERSION_STRING = "TODO", // TODO(bfredl): not sure what to put here. summary already in "config_str"
.CONFIG = config_str,
});
diff --git a/cmake.config/versiondef.h.in b/cmake.config/versiondef.h.in
@@ -12,6 +12,10 @@
#endif
#define NVIM_VERSION_CFLAGS "${VERSION_STRING}"
-#define NVIM_VERSION_BUILD_TYPE "${CONFIG}"
+#ifdef ZIG_BUILD
+# define NVIM_VERSION_BUILD_TYPE "${CONFIG}"
+#else
+# define NVIM_VERSION_BUILD_TYPE "$<CONFIG>"
+#endif
#endif // AUTO_VERSIONDEF_H
diff --git a/src/versiondef.h.in b/src/versiondef.h.in
@@ -1,16 +0,0 @@
-#ifndef AUTO_VERSIONDEF_H
-#define AUTO_VERSIONDEF_H
-
-#define NVIM_VERSION_MAJOR @NVIM_VERSION_MAJOR@
-#define NVIM_VERSION_MINOR @NVIM_VERSION_MINOR@
-#define NVIM_VERSION_PATCH @NVIM_VERSION_PATCH@
-#define NVIM_VERSION_PRERELEASE "@NVIM_VERSION_PRERELEASE@"
-
-#ifndef NVIM_VERSION_MEDIUM
-# include "auto/versiondef_git.h"
-#endif
-
-#define NVIM_VERSION_CFLAGS "${VERSION_STRING}"
-#define NVIM_VERSION_BUILD_TYPE "${CONFIG}"
-
-#endif // AUTO_VERSIONDEF_H