From 921f8b0df728222e8aa02f2e6324e1b57b440519 Mon Sep 17 00:00:00 2001 From: bfredl Date: Sun, 4 May 2025 09:49:10 +0200 Subject: [PATCH] fix(build): use correct cmake expression for $ ${CONFIG} is an empty string even when configuration is known at configuration time. $ has to be used at "generation time" Currently zig's reimplementation of cmake config headers does not support $ so use a branch to pick the one which works. --- build.zig | 3 ++- cmake.config/versiondef.h.in | 6 +++++- src/versiondef.h.in | 16 ---------------- 3 files changed, 7 insertions(+), 18 deletions(-) delete mode 100644 src/versiondef.h.in diff --git a/build.zig b/build.zig index 91f04fadf2..5c22bae260 100644 --- 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 index ccb74b4151..c812ceddb1 100644 --- 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 "$" +#endif #endif // AUTO_VERSIONDEF_H diff --git a/src/versiondef.h.in b/src/versiondef.h.in deleted file mode 100644 index 32d9165244..0000000000 --- a/src/versiondef.h.in +++ /dev/null @@ -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