diff --git a/.gitignore b/.gitignore index 61dfb90d9..c96688e9f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ release*/ *.swp .DS_Store +.version \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fb00a023..edfd341a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,19 +80,22 @@ set_property(CACHE KEEPASSXC_BUILD_TYPE PROPERTY STRINGS Snapshot Release PreRel execute_process(COMMAND git tag --points-at HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE GIT_TAG) -if(GIT_TAG) - string(REGEX REPLACE "\r?\n$" "" GIT_TAG "${GIT_TAG}") +if(NOT GIT_TAG AND EXISTS ${CMAKE_SOURCE_DIR}/.version) + file(READ ${CMAKE_SOURCE_DIR}/.version OVERRIDE_VERSION) +endif() - if(GIT_TAG MATCHES "^[\\.0-9]+-(alpha|beta)[0-9]+$") +string(REGEX REPLACE "(\r?\n)+" "" OVERRIDE_VERSION "${OVERRIDE_VERSION}") +if(OVERRIDE_VERSION) + if(OVERRIDE_VERSION MATCHES "^[\\.0-9]+-(alpha|beta)[0-9]+$") set(KEEPASSXC_BUILD_TYPE PreRelease) - set(KEEPASSXC_VERSION ${GIT_TAG}) - elseif(GIT_TAG MATCHES "^[\\.0-9]+$") + set(KEEPASSXC_VERSION ${OVERRIDE_VERSION}) + elseif(OVERRIDE_VERSION MATCHES "^[\\.0-9]+$") set(KEEPASSXC_BUILD_TYPE Release) - set(KEEPASSXC_VERSION ${GIT_TAG}) + set(KEEPASSXC_VERSION ${OVERRIDE_VERSION}) endif() endif() -if(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease" AND NOT GIT_TAG) +if(KEEPASSXC_BUILD_TYPE STREQUAL "PreRelease" AND NOT OVERRIDE_VERSION) set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-preview") elseif(KEEPASSXC_BUILD_TYPE STREQUAL "Snapshot") set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION}-snapshot")