Merged
Merge Request #2
·
created by
Add version information to projectheader
Versioning as a submodule will be deprecated. To enable the version on libraries, we need to add version information ( obtained from git ) in the projectheader. This is a macro used in every makefile so it seems like the most logical place.
From
feat/pgroen/set_software_version
into
master
-
mentioned in commit 83d7bf32bbdfb50a077daaa1d4cc9d611570b93e
-
Status changed to merged
Showing
1 changed file
projectheader.cmake
... | ... | @@ -3,12 +3,37 @@ |
3 | 3 | # @param CURRENT_PROJECT_BINARY_DIR [optional] Override for the default project binary dir (PROJECT_BINARY_DIR for executables, CMAKE_BINARY_DIR for libraries). |
4 | 4 | macro ( project_header CURRENT_PROJECT_NAME ) |
5 | 5 | |
6 | +# Determine the version and fill the following variables : | |
7 | +# SOVERSION : The tag from the git-repository. Not necessarily a number-only string. | |
8 | +find_package(Git QUIET) | |
9 | + | |
10 | +if(GIT_FOUND) | |
11 | + if( EXISTS "${PROJECT_SOURCE_DIR}/.git") | |
12 | + execute_process(COMMAND ${GIT_EXECUTABLE} describe --abbrev=0 --tags | |
13 | + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | |
14 | + OUTPUT_VARIABLE CURRENT_PROJECT_VERSION | |
15 | + OUTPUT_STRIP_TRAILING_WHITESPACE) | |
16 | + message( STATUS "================================================================" ) | |
17 | + message( STATUS "Found the following tag : ${CURRENT_PROJECT_VERSION}") | |
18 | + message( STATUS "================================================================" ) | |
19 | + else() | |
20 | + message( STATUS ".git directory does not exists..") | |
21 | + message( STATUS "Project directory : ${PROJECT_SOURCE_DIR}") | |
22 | + endif() | |
23 | +else() | |
24 | + message( STATUS "git-command not found....") | |
25 | + message( FATAL "Unable to determine the version of the software.") | |
26 | +endif() | |
27 | + | |
6 | 28 | message( STATUS "" ) |
7 | 29 | message( STATUS "================================================================" ) |
8 | 30 | message( STATUS "Creating Makefile of ${CURRENT_PROJECT_NAME}" ) |
9 | 31 | message( STATUS "================================================================" ) |
10 | 32 | message( STATUS "CURRENT_PROJECT_VERSION: ${CURRENT_PROJECT_VERSION}" ) |
11 | 33 | |
34 | +set(SOVERSION "${CURRENT_PROJECT_VERSION}") | |
35 | +set(VERSION "${CURRENT_PROJECT_VERSION}") | |
36 | + | |
12 | 37 | project(${CURRENT_PROJECT_NAME} VERSION ${CURRENT_PROJECT_VERSION}) |
13 | 38 | set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_NO_CYCLES 1) |
14 | 39 | ... | ... |