diff --git a/cmake/alpaqa-version.h.in b/cmake/alpaqa-version.h.in index c581fde6c0..5618c38161 100644 --- a/cmake/alpaqa-version.h.in +++ b/cmake/alpaqa-version.h.in @@ -7,11 +7,14 @@ #define ALPAQA_VERSION "@PROJECT_VERSION@" #define ALPAQA_VERSION_FULL "@PROJECT_VERSION@@PY_VERSION_SUFFIX@" #define ALPAQA_BUILD_TIME alpaqa_build_time +#define ALPAQA_COMMIT_HASH alpaqa_commit_hash #include #ifdef __cplusplus -extern "C" -#else -extern +extern "C" { +#endif +extern ALPAQA_EXPORT const char *const alpaqa_build_time; +extern ALPAQA_EXPORT const char *const alpaqa_commit_hash; +#ifdef __cplusplus +} #endif - ALPAQA_EXPORT const char *const alpaqa_build_time; diff --git a/src/cmake/BuildTime.cmake b/src/cmake/BuildTime.cmake index d9dd9003db..61fb99f66f 100644 --- a/src/cmake/BuildTime.cmake +++ b/src/cmake/BuildTime.cmake @@ -1,3 +1,9 @@ string(TIMESTAMP ALPAQA_BUILD_TIME UTC) +execute_process( + COMMAND git log -1 --format=%H + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} + OUTPUT_VARIABLE ALPAQA_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET) configure_file(${CMAKE_CURRENT_LIST_DIR}/alpaqa-build-time.cpp.in alpaqa-build-time.cpp @ONLY) diff --git a/src/cmake/alpaqa-build-time.cpp.in b/src/cmake/alpaqa-build-time.cpp.in index fbed2fb42d..c20c49e023 100644 --- a/src/cmake/alpaqa-build-time.cpp.in +++ b/src/cmake/alpaqa-build-time.cpp.in @@ -1,2 +1,3 @@ #include -const char *const alpaqa_build_time = "@ALPAQA_BUILD_TIME@"; \ No newline at end of file +const char *const alpaqa_build_time = "@ALPAQA_BUILD_TIME@"; +const char *const alpaqa_commit_hash = "@ALPAQA_COMMIT_HASH@"; \ No newline at end of file