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 | ... | ... |