Get version from Git
parent
683f4e9abc
commit
6f4445a596
|
@ -10,11 +10,46 @@ set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
|||
#include ("GetVersionFromGitTag")
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
project (
|
||||
"Minetestmapper"
|
||||
VERSION 0.1.0
|
||||
"Minetestmapper"
|
||||
DESCRIPTION "Map generator for Minetest"
|
||||
LANGUAGES C CXX)
|
||||
|
||||
find_package(Git REQUIRED)
|
||||
|
||||
execute_process(
|
||||
COMMAND "${GIT_EXECUTABLE}" describe --long --dirty=-WIP --tags
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
RESULT_VARIABLE git_result
|
||||
OUTPUT_VARIABLE git_tag
|
||||
ERROR_VARIABLE git_error
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if( NOT git_result EQUAL 0 )
|
||||
message( FATAL_ERROR "Failed to execute Git: ${git_error}" )
|
||||
endif()
|
||||
|
||||
if( git_tag MATCHES "([0-9]+).([0-9]+).([0-9]+)-?([0-9]+)?-g([0-9,a-f]+)" )
|
||||
set( git_version_major "${CMAKE_MATCH_1}" )
|
||||
set( git_version_minor "${CMAKE_MATCH_2}" )
|
||||
set( git_version_patch "${CMAKE_MATCH_3}" )
|
||||
set( git_commits_since_last_tag "${CMAKE_MATCH_4}" )
|
||||
set( git_hash "${CMAKE_MATCH_5}" )
|
||||
else()
|
||||
message( FATAL_ERROR "Git tag isn't valid semantic version: [${git_tag}]" )
|
||||
endif()
|
||||
|
||||
set (PROJECT_VERSION_MAJOR ${git_version_major})
|
||||
set (PROJECT_VERSION_MINOR ${git_version_minor})
|
||||
set (PROJECT_VERSION_PATCH ${git_version_patch})
|
||||
set (PROJECT_VERSION_TWEAK ${git_commits_since_last_tag})
|
||||
if(NOT PROJECT_VERSION_TWEAK)
|
||||
set(PROJECT_VERSION_TWEAK 0)
|
||||
endif()
|
||||
|
||||
set (PROJECT_VERSION "${git_version_major}.${git_version_minor}.${git_version_patch}.${git_commits_since_last_tag}-g${git_hash}")
|
||||
message(STATUS "Version: ${PROJECT_VERSION}")
|
||||
|
||||
# Set output directories
|
||||
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define PROJECT_VERSION_TWEAK @PROJECT_VERSION_TWEAK@
|
||||
|
||||
#define VER_FILEVERSION @PROJECT_VERSION_MAJOR@, @PROJECT_VERSION_MINOR@, @PROJECT_VERSION_PATCH@, @PROJECT_VERSION_TWEAK@
|
||||
#define VER_FILEVERSION_STR "@PROJECT_VERSION_MAJOR@. @PROJECT_VERSION_MINOR@. @PROJECT_VERSION_PATCH@"
|
||||
#define VER_FILEVERSION_STR "@PROJECT_VERSION@"
|
||||
|
||||
#define VER_PRODUCTVERSION VER_FILEVERSION
|
||||
|
||||
|
|
Loading…
Reference in New Issue