diff options
Diffstat (limited to 'cmake/opentrack-version.cmake')
-rw-r--r-- | cmake/opentrack-version.cmake | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/cmake/opentrack-version.cmake b/cmake/opentrack-version.cmake new file mode 100644 index 00000000..64072e1c --- /dev/null +++ b/cmake/opentrack-version.cmake @@ -0,0 +1,33 @@ +include(GetGitRevisionDescription) + +find_package(Git QUIET) +if(GIT_FOUND) + git_describe(OPENTRACK_COMMIT --tags --always --dirty) + git_describe(OPENTRACK_TAG_EXACT --tag --exact) +endif() + +file(WRITE ${CMAKE_BINARY_DIR}/opentrack-version.h "#define OPENTRACK_VERSION \"${OPENTRACK_COMMIT}\"") + +add_library(opentrack-version STATIC ${CMAKE_BINARY_DIR}/version.cc) +opentrack_compat(opentrack-version) + +set(version-string " +#include \"opentrack-compat/export.hpp\" + +#ifdef __cplusplus +extern \"C\" +#endif +OPENTRACK_EXPORT +const char* opentrack_version; + +const char* opentrack_version = \"${OPENTRACK_COMMIT}\"; +") + +set(crapola-ver) +if(EXISTS ${CMAKE_BINARY_DIR}/version.cc) + file(READ ${CMAKE_BINARY_DIR}/version.cc crapola-ver) +endif() + +if(NOT (crapola-ver STREQUAL version-string)) + file(WRITE ${CMAKE_BINARY_DIR}/version.cc "${version-string}") +endif() |