# # 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 OPENFPGA_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(OPENFPGA_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 OPENFPGA_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(OPENFPGA_VCS_REVISION_SHORT "unkown") endif() else() #Couldn't find git, so can't look-up VCS revision set(OPENFPGA_VCS_REVISION "unkown") set(OPENFPGA_VCS_REVISION_SHORT "unkown") endif() #Set the version according to semver.org set(OPENFPGA_VERSION "${OPENFPGA_VERSION_MAJOR}.${OPENFPGA_VERSION_MINOR}.${OPENFPGA_VERSION_PATCH}") if(OPENFPGA_VERSION_PRERELEASE) set(OPENFPGA_VERSION "${OPENFPGA_VERSION}-${OPENFPGA_VERSION_PRERELEASE}") endif() set(OPENFPGA_VERSION_SHORT ${OPENFPGA_VERSION}) if(OPENFPGA_VCS_REVISION) set(OPENFPGA_VERSION "${OPENFPGA_VERSION}+${OPENFPGA_VCS_REVISION_SHORT}") endif() #Other build meta-data string(TIMESTAMP OPENFPGA_BUILD_TIMESTAMP) set(OPENFPGA_BUILD_TIMESTAMP "${OPENFPGA_BUILD_TIMESTAMP}") set(OPENFPGA_BUILD_INFO "${OPENFPGA_BUILD_INFO}") message(STATUS "OpenFPGA Version: ${OPENFPGA_VERSION}") configure_file(${IN_FILE} ${OUT_FILE})