Using git version in cmake include/version.h.in #define VERSION_STRING "@VERSION_STRING@" cmake/generate_version.cmake execute_process(COMMAND git describe --always --dirty=+ OUTPUT_VARIABLE VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE) configure_file(${VERSION_INPUT} ${VERSION_OUTPUT}) CMakeLists.txt add_custom_target(generate-version COMMAND ${CMAKE_COMMAND} -D VERSION_INPUT=${CMAKE_SOURCE_DIR}/include/version.h.in -D VERSION_OUTPUT=${CMAKE_BINARY_DIR}/include/version.h -P ${CMAKE_SOURCE_DIR}/cmake/generate_version.cmake) add_dependencies(<main target> generate-version)