Skip to content

Commit f46846d

Browse files
committed
feat(build): use git commit hash instead of auto-increment version
1 parent 888b7b3 commit f46846d

5 files changed

Lines changed: 39 additions & 17 deletions

File tree

CMakeLists.txt

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,41 @@ endif()
109109
# ==================================================================================
110110

111111
file(STRINGS "${CMAKE_SOURCE_DIR}/makespec/VERSION" VERSION)
112-
file(STRINGS "${CMAKE_SOURCE_DIR}/makespec/BUILDVERSION" BUILD_VERSION)
113112
file(STRINGS "${CMAKE_SOURCE_DIR}/makespec/VERSIONSUFFIX" VERSION_SUFFIX)
114113

114+
# Get git commit hash as build version
115+
find_package(Git QUIET)
116+
if(GIT_FOUND)
117+
execute_process(
118+
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
119+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
120+
RESULT_VARIABLE GIT_RESULT
121+
OUTPUT_VARIABLE GIT_COMMIT_HASH
122+
ERROR_QUIET
123+
OUTPUT_STRIP_TRAILING_WHITESPACE
124+
)
125+
if(GIT_RESULT EQUAL 0 AND NOT GIT_COMMIT_HASH STREQUAL "")
126+
set(BUILD_VERSION "${GIT_COMMIT_HASH}")
127+
else()
128+
set(BUILD_VERSION "no-git")
129+
endif()
130+
else()
131+
# Fallback if git is not found
132+
execute_process(
133+
COMMAND "git" rev-parse --short HEAD
134+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
135+
RESULT_VARIABLE GIT_RESULT
136+
OUTPUT_VARIABLE GIT_COMMIT_HASH
137+
ERROR_QUIET
138+
OUTPUT_STRIP_TRAILING_WHITESPACE
139+
)
140+
if(GIT_RESULT EQUAL 0 AND NOT GIT_COMMIT_HASH STREQUAL "")
141+
set(BUILD_VERSION "${GIT_COMMIT_HASH}")
142+
else()
143+
set(BUILD_VERSION "no-git")
144+
endif()
145+
endif()
146+
115147
set(VERSION_STRING "${VERSION}${VERSION_SUFFIX}")
116148
set(VERSION_LIST ${VERSION})
117149
string(REPLACE "." ";" VERSION_LIST ${VERSION_LIST})
@@ -124,7 +156,7 @@ list(GET VERSION_LIST 2 CPACK_PACKAGE_VERSION_PATCH)
124156
add_definitions(-DLEMON_VERSION_MAJOR=${CMAKE_PROJECT_VERSION_MAJOR})
125157
add_definitions(-DLEMON_VERSION_MINOR=${CMAKE_PROJECT_VERSION_MINOR})
126158
add_definitions(-DLEMON_VERSION_BUGFIX=${CPACK_PACKAGE_VERSION_PATCH})
127-
add_definitions(-DLEMON_VERSION_BUILD=${BUILD_VERSION})
159+
add_definitions(-DLEMON_VERSION_BUILD="${BUILD_VERSION}")
128160

129161
add_definitions(-DLEMON_VERSION_STRING="${VERSION_STRING}")
130162

hooks/pre-commit

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
11
#!/bin/bash
2-
STAGE_FILES=$(git diff --cached --name-only --diff-filter=ACM -- 'makespec/BUILDVERSION')
3-
#echo $STAGE_FILES
4-
if test ${#STAGE_FILES} -gt 0
5-
then
6-
echo 'BUILDVERSION already changed, not touching'
7-
else
8-
echo 'Increasing BUILDVERSION'
9-
expr $(cat ./makespec/BUILDVERSION) + 1 > ./makespec/BUILDVERSION
10-
cat ./makespec/BUILDVERSION
11-
git add ./makespec/BUILDVERSION
12-
fi
2+
# Pre-commit hook - no longer increments build version
3+
# Build version now uses git commit hash instead
4+
echo 'Using git commit hash for build version - no manual increment needed'

makespec/BUILDVERSION

Lines changed: 0 additions & 1 deletion
This file was deleted.

resource.qrc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<qresource prefix="/asset">
66
<file>makespec/VERSION</file>
77
<file>makespec/VERSIONSUFFIX</file>
8-
<file>makespec/BUILDVERSION</file>
98
<file>assets/lemon-lime.ico</file>
109
</qresource>
1110
<qresource prefix="/icon">

src/lemon.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -999,11 +999,11 @@ void LemonLime::changeContestName() {
999999
}
10001000

10011001
void LemonLime::aboutLemon() {
1002-
QString text;
1002+
QString text;
10031003
text += "<h2>Project LemonLime</h2>";
10041004
text += "<h3>" +
10051005
tr("Version: %1")
1006-
.arg(QString(LEMON_VERSION_STRING) + QString(":") + QString::number(LEMON_VERSION_BUILD)) +
1006+
.arg(QString(LEMON_VERSION_STRING) + QString(":") + QString(LEMON_VERSION_BUILD)) +
10071007
"</h3>";
10081008
text += tr("This is a tiny judging environment for OI contest based on Project LemonPlus.") + "<br>";
10091009
text += tr("Based on Project Lemon version 1.2 Beta by Zhipeng Jia, 2011") + "<br>";

0 commit comments

Comments
 (0)