mirror of
https://github.com/transmission/transmission
synced 2025-03-03 18:25:35 +00:00
Improve version.h file generation
Store full revision hash in REVISION file. Write fixes 10 chars of revision hash to version.h. Use `#pragma once` in version.h. Support getting revision from TeamCity environment variable (similar to Jenkins).
This commit is contained in:
parent
a23cd29f07
commit
fd93316466
3 changed files with 22 additions and 16 deletions
|
@ -62,16 +62,16 @@ endif()
|
|||
|
||||
set(TR_VCS_REVISION_FILE "${CMAKE_SOURCE_DIR}/REVISION")
|
||||
|
||||
if(NOT "$ENV{JENKINS_URL}" STREQUAL "" AND NOT "$ENV{VCS_REVISION}" STREQUAL "")
|
||||
# Jenkins automated build, use the set environment variables to avoid
|
||||
# version mismatches between java's svn and command line's svn
|
||||
set(TR_VCS_REVISION "$ENV{VCS_REVISION}")
|
||||
if(NOT "$ENV{JENKINS_URL}" STREQUAL "" AND NOT "$ENV{GIT_COMMIT}" STREQUAL "")
|
||||
set(TR_VCS_REVISION "$ENV{GIT_COMMIT}")
|
||||
elseif(NOT "$ENV{TEAMCITY_PROJECT_NAME}" STREQUAL "" AND NOT "$ENV{BUILD_VCS_NUMBER}" STREQUAL "")
|
||||
set(TR_VCS_REVISION "$ENV{BUILD_VCS_NUMBER}")
|
||||
elseif(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/.git)
|
||||
find_package(Git)
|
||||
if(GIT_FOUND)
|
||||
execute_process(
|
||||
COMMAND
|
||||
${GIT_EXECUTABLE} rev-list --max-count=1 --abbrev-commit HEAD
|
||||
${GIT_EXECUTABLE} rev-list --max-count=1 HEAD
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE
|
||||
|
@ -83,16 +83,19 @@ endif()
|
|||
|
||||
if("${TR_VCS_REVISION}" STREQUAL "" AND EXISTS "${TR_VCS_REVISION_FILE}")
|
||||
file(READ "${TR_VCS_REVISION_FILE}" TR_VCS_REVISION)
|
||||
string(STRIP "${TR_VCS_REVISION}" TR_VCS_REVISION)
|
||||
endif()
|
||||
|
||||
string(STRIP "${TR_VCS_REVISION}" TR_VCS_REVISION)
|
||||
|
||||
if(NOT "${TR_VCS_REVISION}" STREQUAL "")
|
||||
file(WRITE "${TR_VCS_REVISION_FILE}" "${TR_VCS_REVISION}")
|
||||
file(WRITE "${TR_VCS_REVISION_FILE}" "${TR_VCS_REVISION}\n")
|
||||
else()
|
||||
set(TR_VCS_REVISION 0)
|
||||
file(REMOVE "${TR_VCS_REVISION_FILE}")
|
||||
endif()
|
||||
|
||||
string(SUBSTRING "${TR_VCS_REVISION}" 0 10 TR_VCS_REVISION)
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
set(CURL_MINIMUM 7.15.4)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
#ifndef TR_VERSION_H
|
||||
#define TR_VERSION_H
|
||||
#pragma once
|
||||
|
||||
#define PEERID_PREFIX "${TR_PEER_ID_PREFIX}"
|
||||
#define USERAGENT_PREFIX "${TR_USER_AGENT_PREFIX}"
|
||||
|
@ -14,5 +13,3 @@
|
|||
#cmakedefine TR_BETA_RELEASE 1
|
||||
#cmakedefine TR_NIGHTLY_RELEASE 1
|
||||
#cmakedefine TR_STABLE_RELEASE 1
|
||||
|
||||
#endif /* TR_VERSION_H */
|
||||
|
|
|
@ -23,16 +23,18 @@ minor_version=`echo ${user_agent_prefix} | awk -F . '{print $2 + 0}'`
|
|||
vcs_revision=
|
||||
vcs_revision_file=REVISION
|
||||
|
||||
if [ -n "$JENKINS_URL" -a -n "$VCS_REVISION" ]; then
|
||||
# Jenkins automated build, use the set environment variables to avoid
|
||||
# version mismatches between java's svn and command line's svn
|
||||
vcs_revision=$VCS_REVISION
|
||||
if [ -n "$JENKINS_URL" -a -n "$GIT_COMMIT" ]; then
|
||||
vcs_revision=$GIT_COMMIT
|
||||
elif [ -n "$TEAMCITY_PROJECT_NAME" -a -n "$BUILD_VCS_NUMBER" ]; then
|
||||
vcs_revision=$BUILD_VCS_NUMBER
|
||||
elif [ -d ".git" ] && type git >/dev/null 2>&1; then
|
||||
vcs_revision=`git rev-list --max-count=1 --abbrev-commit HEAD`
|
||||
vcs_revision=`git rev-list --max-count=1 HEAD`
|
||||
elif [ -f "$vcs_revision_file" ]; then
|
||||
vcs_revision=`cat "$vcs_revision_file"`
|
||||
fi
|
||||
|
||||
vcs_revision=`echo $vcs_revision`
|
||||
|
||||
if [ -n "$vcs_revision" ]; then
|
||||
[ -f "$vcs_revision_file" ] && [ "`cat "$vcs_revision_file"`" = "$vcs_revision" ] || echo "$vcs_revision" > "$vcs_revision_file"
|
||||
else
|
||||
|
@ -40,7 +42,11 @@ else
|
|||
rm -f "$vcs_revision_file"
|
||||
fi
|
||||
|
||||
vcs_revision=${vcs_revision:0:10}
|
||||
|
||||
cat > libtransmission/version.h.new << EOF
|
||||
#pragma once
|
||||
|
||||
#define PEERID_PREFIX "${peer_id_prefix}"
|
||||
#define USERAGENT_PREFIX "${user_agent_prefix}"
|
||||
#define VCS_REVISION "${vcs_revision}"
|
||||
|
|
Loading…
Reference in a new issue