Created
October 27, 2016 22:21
-
-
Save mheistermann/1849730225bf2e893e546f515cb7be6b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# http://stackoverflow.com/questions/3780667/use-cmake-to-get-build-time-svn-revision | |
find_package(Git) | |
if(GIT_FOUND) | |
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --dirty --always RESULT_VARIABLE res_var OUTPUT_VARIABLE GIT_COM_ID ) | |
if( NOT ${res_var} EQUAL 0 ) | |
set( GIT_COMMIT_ID "git commit id unknown") | |
message( WARNING "Git failed (not a repo, or no tags). Build will not contain git revision info." ) | |
endif() | |
string( REPLACE "\n" "" GIT_COMMIT_ID ${GIT_COM_ID} ) | |
else() | |
set( GIT_COMMIT_ID "unknown (git not found!)") | |
message( WARNING "Git not found. Build will not contain git revision info." ) | |
endif() | |
SET(BUILDINFO_FILENAME "buildinfo.hh") | |
# TODO: windows suppport | |
execute_process(COMMAND date RESULT_VARIABLE res_var OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) | |
execute_process(COMMAND hostname -f RESULT_VARIABLE res_var OUTPUT_VARIABLE BUILDINFO_HOSTNAME OUTPUT_STRIP_TRAILING_WHITESPACE) | |
execute_process(COMMAND whoami RESULT_VARIABLE res_var OUTPUT_VARIABLE BUILDINFO_USERNAME OUTPUT_STRIP_TRAILING_WHITESPACE) | |
set( vstring "// ${BUILDINFO_FILENAME} - written by cmake. changes will be lost!\n" | |
"#ifndef FEATUREGRAPH_BUILDINFO_HH\n" | |
"#define FEATUREGRAPH_BUILDINFO_HH\n" | |
"\n" | |
"struct BuildInfo {\n" | |
" static const char * version_string = \"${GIT_COMMIT_ID}\"\;\n" | |
" static const char * date = \"${BUILDINFO_DATE}\"\;\n" | |
" static const char * hostname = \"${BUILDINFO_HOSTNAME}\"\;\n" | |
" static const char * username = \"${BUILDINFO_USERNAME}\"\;\n" | |
" static const char * type = \"${CMAKE_BUILD_TYPE}\"\;\n" | |
"};\n" | |
"#endif // FEATUREGRAPH_BUILDINFO_HH\n" | |
) | |
file(WRITE buildinfo.hh.txt ${vstring} ) | |
# copy the file to the final header only if the version changes | |
# reduces needless rebuilds | |
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different | |
buildinfo.hh.txt ${CMAKE_CURRENT_BINARY_DIR}/buildinfo.hh) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment