aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-09-30 00:10:29 +0200
committerGitHub <noreply@github.com>2019-09-30 00:10:29 +0200
commitb18b84df5eab9829ecbef644ef0af226becf881d (patch)
tree64ee0eb30c2522cd34e7c2dadc6e8c765235f60c /config
parentce637d0ef1d6f76edfa667dd1ea6662992195b1c (diff)
downloadrneovim-b18b84df5eab9829ecbef644ef0af226becf881d.tar.gz
rneovim-b18b84df5eab9829ecbef644ef0af226becf881d.tar.bz2
rneovim-b18b84df5eab9829ecbef644ef0af226becf881d.zip
build: run git-describe for dev version during build (#11117)
This avoids invoking CMake after a new commit, which might take 15s on some systems. Skipped on CMake < 3.2.0 (missing BYPRODUCTS support). Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
Diffstat (limited to 'config')
-rw-r--r--config/CMakeLists.txt29
1 files changed, 29 insertions, 0 deletions
diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt
index 0ca41d5dfd..7bd48a1f1e 100644
--- a/config/CMakeLists.txt
+++ b/config/CMakeLists.txt
@@ -121,6 +121,35 @@ configure_file (
)
# generate version definitions
+if(NVIM_VERSION_MEDIUM)
+ message(STATUS "NVIM_VERSION_MEDIUM: ${NVIM_VERSION_MEDIUM}")
+elseif(${CMAKE_VERSION} VERSION_LESS "3.2.0")
+ message(STATUS "Skipping version-string generation (requires CMake 3.2.0+)")
+elseif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
+ find_program(GIT_EXECUTABLE git)
+ if(GIT_EXECUTABLE)
+ # Get current version.
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} describe --dirty
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ OUTPUT_VARIABLE NVIM_VERSION_MEDIUM
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ message(STATUS "NVIM_VERSION_MEDIUM (from git): ${NVIM_VERSION_MEDIUM}")
+
+ # Create a update_version_stamp target to update the version during build.
+ file(RELATIVE_PATH relbuild "${PROJECT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}")
+ add_custom_target(update_version_stamp ALL
+ COMMAND ${LUA_PRG} scripts/update_version_stamp.lua
+ ${relbuild}/.version_stamp
+ ${relbuild}/config/auto/versiondef.h
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ BYPRODUCTS ${CMAKE_BINARY_DIR}/config/auto/versiondef.h)
+ add_dependencies(nvim update_version_stamp)
+ else()
+ message(STATUS "Skipping version-string generation (cannot find git)")
+ endif()
+endif()
+
configure_file (
"${PROJECT_SOURCE_DIR}/config/versiondef.h.in"
"${PROJECT_BINARY_DIR}/config/auto/versiondef.h"