strawberry-audio-player-win.../cmake/Version.cmake

97 lines
3.3 KiB
CMake
Raw Normal View History

2018-02-27 18:06:05 +01:00
set(STRAWBERRY_VERSION_MAJOR 0)
2021-03-13 16:01:02 +01:00
set(STRAWBERRY_VERSION_MINOR 9)
2021-04-18 18:44:43 +02:00
set(STRAWBERRY_VERSION_PATCH 3)
2018-02-27 18:06:05 +01:00
#set(STRAWBERRY_VERSION_PRERELEASE rc1)
2021-04-18 18:44:43 +02:00
set(INCLUDE_GIT_REVISION OFF)
2018-02-27 18:06:05 +01:00
set(majorminorpatch "${STRAWBERRY_VERSION_MAJOR}.${STRAWBERRY_VERSION_MINOR}.${STRAWBERRY_VERSION_PATCH}")
set(STRAWBERRY_VERSION_DISPLAY "${majorminorpatch}")
2018-11-11 03:37:14 +01:00
set(STRAWBERRY_VERSION_PACKAGE "${majorminorpatch}")
2018-02-27 18:06:05 +01:00
set(STRAWBERRY_VERSION_RPM_V "${majorminorpatch}")
set(STRAWBERRY_VERSION_RPM_R "1")
2018-11-11 03:37:14 +01:00
set(STRAWBERRY_VERSION_PAC_V "${majorminorpatch}")
set(STRAWBERRY_VERSION_PAC_R "1")
2018-02-27 18:06:05 +01:00
if(${STRAWBERRY_VERSION_PATCH} EQUAL "0")
set(STRAWBERRY_VERSION_DISPLAY "${STRAWBERRY_VERSION_MAJOR}.${STRAWBERRY_VERSION_MINOR}")
endif(${STRAWBERRY_VERSION_PATCH} EQUAL "0")
if(STRAWBERRY_VERSION_PRERELEASE)
set(STRAWBERRY_VERSION_DISPLAY "${STRAWBERRY_VERSION_DISPLAY} ${STRAWBERRY_VERSION_PRERELEASE}")
set(STRAWBERRY_VERSION_RPM_R "0.${STRAWBERRY_VERSION_PRERELEASE}")
set(STRAWBERRY_VERSION_PACKAGE "${STRAWBERRY_VERSION_PACKAGE}${STRAWBERRY_VERSION_PRERELEASE}")
2018-02-27 18:06:05 +01:00
endif(STRAWBERRY_VERSION_PRERELEASE)
2018-07-12 17:10:38 +02:00
if(INCLUDE_GIT_REVISION AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
find_program(GIT_EXECUTABLE git)
2018-07-16 07:23:37 +02:00
if(NOT GIT_EXECUTABLE OR GIT_EXECUTABLE-NOTFOUND)
2018-07-01 15:35:34 +02:00
message(FATAL_ERROR "Missing GIT executable." )
endif()
# Get the current working branch
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE GIT_CMD_RESULT_BRANCH
OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
# Get the latest abbreviated commit hash of the working branch
execute_process(
2018-05-16 23:31:45 +02:00
COMMAND ${GIT_EXECUTABLE} describe --long --tags --always
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE GIT_CMD_RESULT_REVISION
2018-05-08 19:55:53 +02:00
OUTPUT_VARIABLE GIT_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
2018-02-27 18:06:05 +01:00
2018-07-12 17:17:20 +02:00
if(NOT ${GIT_CMD_RESULT_REVISION} EQUAL 0)
message(FATAL_ERROR "GIT command failed to get revision string '${GIT_REVISION}'")
endif()
2018-07-12 17:10:38 +02:00
endif()
if(FORCE_GIT_REVISION)
set(GIT_REVISION ${FORCE_GIT_REVISION})
endif()
if(GIT_REVISION)
2018-05-08 19:55:53 +02:00
string(REGEX REPLACE "^(.+)-([0-9]+)-(g[a-f0-9]+)$" "\\1;\\2;\\3" GIT_PARTS ${GIT_REVISION})
if(NOT GIT_PARTS)
message(FATAL_ERROR "Failed to parse git revision string '${GIT_REVISION}'")
endif()
2018-05-08 19:55:53 +02:00
list(LENGTH GIT_PARTS GIT_PARTS_LENGTH)
if(NOT GIT_PARTS_LENGTH EQUAL 3)
message(FATAL_ERROR "Failed to parse git revision string '${GIT_REVISION}'")
endif()
list(GET GIT_PARTS 0 GIT_TAGNAME)
list(GET GIT_PARTS 1 GIT_COMMITCOUNT)
list(GET GIT_PARTS 2 GIT_SHA1)
set(HAS_GIT_REVISION ON)
2018-05-08 19:55:53 +02:00
set(STRAWBERRY_VERSION_DISPLAY "${GIT_REVISION}")
set(STRAWBERRY_VERSION_PACKAGE "${GIT_TAGNAME}.${GIT_COMMITCOUNT}.${GIT_SHA1}")
2018-05-08 19:55:53 +02:00
set(STRAWBERRY_VERSION_RPM_V "${GIT_TAGNAME}")
set(STRAWBERRY_VERSION_RPM_R "2.${GIT_COMMITCOUNT}.${GIT_SHA1}")
set(STRAWBERRY_VERSION_PAC_V "${GIT_TAGNAME}.r${GIT_COMMITCOUNT}.${GIT_SHA1}")
set(STRAWBERRY_VERSION_PAC_R "1")
endif()
2018-02-27 18:06:05 +01:00
message(STATUS "Strawberry Version:")
message(STATUS "Display: ${STRAWBERRY_VERSION_DISPLAY}")
message(STATUS "Package: ${STRAWBERRY_VERSION_PACKAGE}")
2018-11-11 03:37:14 +01:00
message(STATUS "RPM: ${STRAWBERRY_VERSION_RPM_V}-${STRAWBERRY_VERSION_RPM_R}")
message(STATUS "PAC: ${STRAWBERRY_VERSION_PAC_V}-${STRAWBERRY_VERSION_PAC_R}")