Commit c55d51b3 authored by Dominik Charousset's avatar Dominik Charousset

Allow git-less configuration of release version

parent ee359ebd
...@@ -599,40 +599,42 @@ endif() ...@@ -599,40 +599,42 @@ endif()
# -- Fetch branch name and SHA if available ------------------------------------ # -- Fetch branch name and SHA if available ------------------------------------
find_package(Git QUIET) if(EXISTS "release.txt")
file(READ "release.txt" CAF_VESION)
set(CAF_RELEASE "${CAF_VERSION}") else()
set(CAF_RELEASE "${CAF_VERSION}")
if(GIT_FOUND) find_package(Git QUIET)
# retrieve current branch name for CAF if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD # retrieve current branch name for CAF
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
RESULT_VARIABLE gitBranchResult WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE gitBranch RESULT_VARIABLE gitBranchResult
ERROR_QUIET OUTPUT_VARIABLE gitBranch
OUTPUT_STRIP_TRAILING_WHITESPACE) ERROR_QUIET
# retrieve current SHA1 hash for CAF OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${GIT_EXECUTABLE} log --pretty=format:%h -n 1 # retrieve current SHA1 hash for CAF
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} execute_process(COMMAND ${GIT_EXECUTABLE} log --pretty=format:%h -n 1
RESULT_VARIABLE gitShaResult WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE gitSha RESULT_VARIABLE gitShaResult
ERROR_QUIET OUTPUT_VARIABLE gitSha
OUTPUT_STRIP_TRAILING_WHITESPACE) ERROR_QUIET
if(gitBranchResult EQUAL 0 AND gitShaResult EQUAL 0) OUTPUT_STRIP_TRAILING_WHITESPACE)
# generate semantic CAF version for manual if(gitBranchResult EQUAL 0 AND gitShaResult EQUAL 0)
set(CAF_RELEASE "${CAF_VERSION}+exp.sha.${gitSha}") # generate semantic CAF version for manual
# check whether we're building the manual for a stable release set(CAF_RELEASE "${CAF_VERSION}+exp.sha.${gitSha}")
if(gitBranch STREQUAL "master") # check whether we're building the manual for a stable release
# retrieve current tag name for CAF if(gitBranch STREQUAL "master")
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --contains ${gitSha} # retrieve current tag name for CAF
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --contains ${gitSha}
RESULT_VARIABLE gitTagResult WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE gitTag RESULT_VARIABLE gitTagResult
ERROR_QUIET OUTPUT_VARIABLE gitTag
OUTPUT_STRIP_TRAILING_WHITESPACE) ERROR_QUIET
# tags indicate stable releases -> use tag name as release version OUTPUT_STRIP_TRAILING_WHITESPACE)
if(gitTagResult EQUAL 0) # tags indicate stable releases -> use tag name as release version
set(CAF_RELEASE "${gitTag}") if(gitTagResult EQUAL 0)
set(CAF_RELEASE "${gitTag}")
endif()
endif() endif()
endif() endif()
endif() endif()
......
#!/bin/sh
grep "define CAF_VERSION" libcaf_core/caf/config.hpp | awk '{printf "%d.%d.%d", int($3 / 10000), int($3 / 100) % 100, $3 % 100}' > version.txt
git rev-parse --abbrev-ref HEAD > branch.txt
git log --pretty=format:%h -n 1 > sha.txt
if test "$(cat branch.txt) = master" && git describe --tags --contains $(cat sha.txt) 1>tag.txt 2>/dev/null ; then
cp tag.txt release.txt
else
printf "%s" "$(cat version.txt)+exp.sha.$(cat sha.txt)" > release.txt
fi
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment