@@ -18,6 +18,25 @@ if(VERSION_PRERELEASE)
1818 set (VERSION ${VERSION} -${VERSION_PRERELEASE} )
1919endif ()
2020
21+ # Set ${SRCVERSION}
22+ if (EXISTS "${CMAKE_SOURCE_DIR} /.git" )
23+ execute_process (COMMAND git describe
24+ OUTPUT_VARIABLE SRCVERSION
25+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
26+ OUTPUT_STRIP_TRAILING_WHITESPACE
27+ ERROR_QUIET)
28+ if (NOT SRCVERSION)
29+ execute_process (COMMAND git log -1 --format=%h
30+ OUTPUT_VARIABLE SRCVERSION
31+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
32+ OUTPUT_STRIP_TRAILING_WHITESPACE)
33+ endif ()
34+ elseif (EXISTS "${CMAKE_SOURCE_DIR} /.version" )
35+ file (STRINGS ${CMAKE_SOURCE_DIR} /.version SRCVERSION)
36+ else ()
37+ set (SRCVERSION ${VERSION} )
38+ endif ()
39+
2140set (LIBPMEMOBJ_REQUIRED_VERSION 1.8)
2241set (LIBPMEM_REQUIRED_VERSION 1.7)
2342# Only pmreorder in ver. >= 1.9 guarantees reliable output
@@ -43,24 +62,6 @@ endif()
4362
4463set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR} /cmake)
4564
46- # XXX: use it in version.hpp and in Doxygen.in
47- # Set ${SRCVERSION}
48- if (EXISTS "${CMAKE_SOURCE_DIR} /.git" )
49- execute_process (COMMAND git describe
50- OUTPUT_VARIABLE SRCVERSION
51- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
52- OUTPUT_STRIP_TRAILING_WHITESPACE
53- ERROR_QUIET)
54- if (NOT SRCVERSION)
55- execute_process (COMMAND git log -1 --format=%h
56- OUTPUT_VARIABLE SRCVERSION
57- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
58- OUTPUT_STRIP_TRAILING_WHITESPACE)
59- endif ()
60- else ()
61- file (STRINGS ${CMAKE_SOURCE_DIR} /.version SRCVERSION)
62- endif ()
63-
6465## CMake build options
6566option (BUILD_EXAMPLES "build examples" ON )
6667option (BUILD_TESTS "build tests" ON )
@@ -235,7 +236,10 @@ add_check_whitespace(cmake-helpers ${CMAKE_CURRENT_SOURCE_DIR}/cmake/*.cmake)
235236
236237## Configure make install/uninstall and packages
237238configure_file (${CMAKE_SOURCE_DIR} /cmake/version .hpp.in
238- ${CMAKE_SOURCE_DIR} /include /libpmemobj++/version .hpp @ONLY)
239+ ${CMAKE_CURRENT_BINARY_DIR} /version .hpp @ONLY)
240+
241+ install (FILES ${CMAKE_CURRENT_BINARY_DIR} /version .hpp
242+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /libpmemobj++)
239243
240244install (DIRECTORY include / DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
241245 FILES_MATCHING PATTERN "*.hpp" )
0 commit comments