build: versioning
versioning via git tags, commits after tags are displayed in the versionnumber
This commit is contained in:
+26
-3
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.9)
|
||||
|
||||
include(cmake/add_files.cmake)
|
||||
include(cmake/create_source_groups.cmake)
|
||||
|
||||
include(cmake/version_setup.cmake)
|
||||
|
||||
# Variables --------------------------------------------------------------------
|
||||
|
||||
@@ -132,6 +132,11 @@ if(Qt5Widgets_FOUND)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# target for running versionnumber script
|
||||
# workaround for running customcommand (ninja dependency cycle)
|
||||
add_custom_target(
|
||||
versionnumber ALL
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
file(WRITE ${CMAKE_SOURCE_DIR}/build/Coati.rc
|
||||
@@ -139,11 +144,23 @@ if (WIN32)
|
||||
"// remains consistent on all systems.\n"
|
||||
"IDI_ICON1 ICON \"${CMAKE_SOURCE_DIR}/build/coati.ico\"\n"
|
||||
)
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc)
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc ${CMAKE_SOURCE_DIR}/build/src/app/version.h)
|
||||
else ()
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES})
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/src/app/version.h)
|
||||
endif ()
|
||||
|
||||
# command for versioning script
|
||||
add_custom_command(
|
||||
TARGET versionnumber
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/version.cmake
|
||||
BYPRODUCTS ${PROJECT_SOURCE_DIR}/build/src/app/version.h
|
||||
DEPENDS ${APP_PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMENT "check/update version number"
|
||||
)
|
||||
add_dependencies(${APP_PROJECT_NAME} versionnumber)
|
||||
|
||||
create_source_groups(${APP_FILES})
|
||||
|
||||
target_link_libraries(${APP_PROJECT_NAME} ${LIB_PROJECT_NAME})
|
||||
@@ -167,6 +184,12 @@ configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/build/src/app/includes.h"
|
||||
)
|
||||
|
||||
#configure the versioning file
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/src/app/version.h.in
|
||||
${CMAKE_SOURCE_DIR}/build/src/app/version.h
|
||||
)
|
||||
|
||||
# add platform specific libraries
|
||||
if (APPLE)
|
||||
find_library(CORE_FOUNDATION CoreFoundation)
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# simple check for a git repo
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
|
||||
execute_process(
|
||||
COMMAND git rev-parse --abbrev-ref HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%h
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git log -1 --format=%ci
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_TIME
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND git describe --match "[0-9]*" --abbrev=7 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_VERSION_NUMBER
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
else(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
set(GIT_BRANCH "")
|
||||
set(GIT_COMMIT_HASH "")
|
||||
set(GIT_VERSION_NUMBER "")
|
||||
set(BUILD_TYPE "")
|
||||
|
||||
endif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
|
||||
message(STATUS "Git current branch: ${GIT_BRANCH}")
|
||||
message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
|
||||
message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
|
||||
message(STATUS "Git version number:" ${GIT_VERSION_NUMBER} )
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/src/app/version.h.in
|
||||
${CMAKE_SOURCE_DIR}/build/src/app/version.h
|
||||
)
|
||||
@@ -0,0 +1,7 @@
|
||||
# # build type needs to be in added as definition because of visual studio
|
||||
message(STATUS "setting up the buildtype for versioning")
|
||||
if(MSVC)
|
||||
add_definitions(-DBUILD_TYPE="${ConfigurationName}")
|
||||
else(MSVC)
|
||||
add_definitions(-DBUILD_TYPE="${CMAKE_BUILD_TYPE}")
|
||||
endif(MSVC)
|
||||
@@ -7,6 +7,8 @@
|
||||
#include <QMessageBox>
|
||||
#include <QSettings>
|
||||
|
||||
#include "version.h"
|
||||
|
||||
#include "component/view/View.h"
|
||||
#include "component/view/CompositeView.h"
|
||||
#include "qt/view/QtViewWidgetWrapper.h"
|
||||
@@ -147,6 +149,10 @@ void QtMainWindow::about()
|
||||
"Malte Langkabel\n"
|
||||
"Victoria Pfausler\n"
|
||||
"Andreas Stallinger\n"
|
||||
"\nVersion: " GIT_VERSION_NUMBER
|
||||
"\nBranch: " GIT_BRANCH
|
||||
"\nBuildtype: " BUILD_TYPE
|
||||
"\nDate: " GIT_COMMIT_TIME
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#define GIT_BRANCH "@GIT_BRANCH@"
|
||||
#define GIT_VERSION_NUMBER "@GIT_VERSION_NUMBER@"
|
||||
#define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@"
|
||||
#define GIT_COMMIT_TIME "@GIT_COMMIT_TIME@"
|
||||
Reference in New Issue
Block a user