| # |
| # Versioning information |
| # |
| #Figure out the git revision |
| find_package(Git QUIET) |
| if(GIT_FOUND) |
| exec_program(${GIT_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} |
| ARGS describe --always --long --dirty |
| OUTPUT_VARIABLE VTR_VCS_REVISION |
| RETURN_VALUE GIT_DESCRIBE_RETURN_VALUE) |
| |
| if(NOT GIT_DESCRIBE_RETURN_VALUE EQUAL 0) |
| #Git describe failed, usually this means we |
| #aren't in a git repo -- so don't set a VCS |
| #revision |
| set(VTR_VCS_REVISION "unkown") |
| endif() |
| |
| #Call again with exclude to get the revision excluding any tags |
| #(i.e. just the commit ID and dirty flag) |
| exec_program(${GIT_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR} |
| ARGS describe --always --long --dirty --exclude '*' |
| OUTPUT_VARIABLE VTR_VCS_REVISION_SHORT |
| RETURN_VALUE GIT_DESCRIBE_RETURN_VALUE) |
| if(NOT GIT_DESCRIBE_RETURN_VALUE EQUAL 0) |
| #Git describe failed, usually this means we |
| #aren't in a git repo -- so don't set a VCS |
| #revision |
| set(VTR_VCS_REVISION_SHORT "unkown") |
| endif() |
| else() |
| #Couldn't find git, so can't look-up VCS revision |
| set(VTR_VCS_REVISION "unkown") |
| set(VTR_VCS_REVISION_SHORT "unkown") |
| endif() |
| |
| |
| #Set the version according to semver.org |
| set(VTR_VERSION "${VTR_VERSION_MAJOR}.${VTR_VERSION_MINOR}.${VTR_VERSION_PATCH}") |
| if(VTR_VERSION_PRERELEASE) |
| set(VTR_VERSION "${VTR_VERSION}-${VTR_VERSION_PRERELEASE}") |
| endif() |
| set(VTR_VERSION_SHORT ${VTR_VERSION}) |
| if(VTR_VCS_REVISION) |
| set(VTR_VERSION "${VTR_VERSION}+${VTR_VCS_REVISION_SHORT}") |
| endif() |
| |
| #Other build meta-data |
| string(TIMESTAMP VTR_BUILD_TIMESTAMP) |
| set(VTR_BUILD_TIMESTAMP "${VTR_BUILD_TIMESTAMP}") |
| set(VTR_BUILD_INFO "${VTR_BUILD_INFO}") |
| |
| message(STATUS "VTR Version: ${VTR_VERSION}") |
| |
| configure_file(${IN_FILE} ${OUT_FILE}) |