aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2023-02-16 13:52:41 -0700
committerGitHub <noreply@github.com>2023-02-16 21:52:41 +0100
commitbb377afd32cb4de2655ec0b28813f5237b66ed97 (patch)
tree08e083ca9c4082c8fcad4d6ace68b951dac7a106 /src
parentced0cd12d0dc8ec113e2139082b72e0ea964a567 (diff)
downloadrneovim-bb377afd32cb4de2655ec0b28813f5237b66ed97.tar.gz
rneovim-bb377afd32cb4de2655ec0b28813f5237b66ed97.tar.bz2
rneovim-bb377afd32cb4de2655ec0b28813f5237b66ed97.zip
build: use custom command to create single versiondef (#22290)
When using a multi config generator, CMake generates an output file for each configuration when using file(GENERATE). When the contents of the file for each configuration are different, CMake fails. Instead, create separate files for each configuration and add a build time step to copy the configuration specific file to the generic path "auto/versiondef.h" which is included at build time.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/nvim/CMakeLists.txt11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index d6a53456d7..04fe8aec5e 100755
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -466,6 +466,15 @@ add_custom_target(update_version_stamp
-P ${PROJECT_SOURCE_DIR}/cmake/GenerateVersion.cmake
BYPRODUCTS ${NVIM_VERSION_GIT_H})
+set(NVIM_VERSION_DEF_H ${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef.h)
+add_custom_command(
+ OUTPUT "${NVIM_VERSION_DEF_H}"
+ COMMAND "${CMAKE_COMMAND}"
+ -E copy
+ "${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef-$<CONFIG>.h"
+ "${NVIM_VERSION_DEF_H}"
+ DEPENDS "${PROJECT_BINARY_DIR}/cmake.config/auto/versiondef-$<CONFIG>.h")
+
# NVIM_GENERATED_FOR_HEADERS: generated headers to be included in headers
# NVIM_GENERATED_FOR_SOURCES: generated headers to be included in sources
# NVIM_GENERATED_SOURCES: generated source files
@@ -503,7 +512,7 @@ foreach(sfile ${NVIM_SOURCES}
set(depends "${HEADER_GENERATOR}" "${sfile}")
if("${f}" STREQUAL "version.c")
# Ensure auto/versiondef_git.h exists after "make clean".
- list(APPEND depends update_version_stamp "${NVIM_VERSION_GIT_H}")
+ list(APPEND depends update_version_stamp "${NVIM_VERSION_GIT_H}" "${NVIM_VERSION_DEF_H}")
endif()
add_custom_command(
OUTPUT "${gf_c_h}" "${gf_h_h}"