diff options
| author | Daniel Hahler <git@thequod.de> | 2019-09-30 00:10:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-30 00:10:29 +0200 |
| commit | b18b84df5eab9829ecbef644ef0af226becf881d (patch) | |
| tree | 64ee0eb30c2522cd34e7c2dadc6e8c765235f60c /config | |
| parent | ce637d0ef1d6f76edfa667dd1ea6662992195b1c (diff) | |
| download | rneovim-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.txt | 29 |
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" |