Incorporer un numéro de version dans le code
Inspired from here
On peut utiliser automatiquement les infos git pour retourner le numéro de version d'un programme (avec un mon_prog -v par example).
En utilisant cmake, mettez dans le CMakeLists:
execute_process(
COMMAND git describe --abbrev=8 --dirty --always --tags
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_CODE_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
configure_file("src/GitVersion.cpp.in" "../src/GitVersion.cpp" @ONLY)
Et le fichier template
src/GitVersion.cpp.in
#define GIT_VERSION "@GIT_CODE_VERSION@" const char g_GIT_VERSION[] = GIT_VERSION;
Avec ça, vous pouvez appeler dans votre code ce numéro de version, ici via boost::program_options:
if (prog_options.count("version")) { std::cout << g_GIT_VERSION << std::endl; exit(EXIT_SUCCESS); }