@@ -4,47 +4,13 @@ cmake_minimum_required(
44project (
55 Version )
66
7- # # The function which grabs the appropriate values for the repository version.
8- # function(GENERATE_VERSION_METADATA)
9- # if(EXISTS ${CMAKE_SOURCE_DIR}/.git AND GIT_FOUND)
10- # execute_process(
11- # COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
12- # OUTPUT_VARIABLE _VERSION_HASH_
13- # ERROR_QUIET
14- # OUTPUT_STRIP_TRAILING_WHITESPACE )
15- # execute_process(
16- # COMMAND ${GIT_EXECUTABLE} describe --tags --dirty
17- # OUTPUT_VARIABLE _VERSION_DIRTY_
18- # ERROR_QUIET
19- # OUTPUT_STRIP_TRAILING_WHITESPACE )
20- # string(REGEX MATCH "-dirty$" _VERSION_DIRTY_ ${_VERSION_DIRTY_})
21- # if("${_VERSION_DIRTY_}" STREQUAL "")
22- # set(_VERSION_DIRTY_ "false")
23- # else()
24- # set(_VERSION_DIRTY_ "true")
25- # endif()
26- # set(_VERSION_MAJOR_ ${VERSION_MAJOR})
27- # set(_VERSION_MINOR_ ${VERSION_MINOR})
28- # set(_VERSION_PATCH_ ${VERSION_PATCH})
29- # set(_VERSION_SUFFIX_ ${VERSION_SUFFIX})
30- # set(_VERSION_HASH_ ${_VERSION_HASH_})
31- # set(_VERSION_DIRTY_ ${_VERSION_DIRTY_})
32- # else()
33- # set(_VERSION_MAJOR_ "unknown")
34- # set(_VERSION_MINOR_ "")
35- # set(_VERSION_PATCH_ "")
36- # set(_VERSION_SUFFIX_ "")
37- # set(_VERSION_HASH_ "")
38- # set(_VERSION_DIRTY_ "")
39- # endif()
40- # endfunction(GENERATE_VERSION_METADATA)
41-
42- set (_VERSION_MAJOR_ "unknown" CACHE STRING "Current major version of repository" )
43- set (_VERSION_MINOR_ "" CACHE STRING "Current minor version of repository" )
44- set (_VERSION_PATCH_ "" CACHE STRING "Current patch version of repository" )
45- set (_VERSION_SUFFIX_ "" CACHE STRING "Current suffiex of repository" )
46- set (_VERSION_HASH_ "" CACHE STRING "Current hash of repository" )
47- set (_VERSION_DIRTY_ "" CACHE STRING "Current dirty state of repository" )
7+ # Define the default version metadata in case `git` cannot be found.
8+ set (_VERSION_MAJOR_ "unknown" )
9+ set (_VERSION_MINOR_ "" )
10+ set (_VERSION_PATCH_ "" )
11+ set (_VERSION_SUFFIX_ "" )
12+ set (_VERSION_HASH_ "" )
13+ set (_VERSION_DIRTY_ "" )
4814
4915# Construct the library.
5016add_library (
@@ -58,85 +24,29 @@ target_include_directories(
5824 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR } /include/"
5925 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR } /src/" )
6026
61- # This one runs everytime; save
6227# Create a custom target to be run upon every build.
63- message (STATUS ${CMAKE_SOURCE_DIR } )
64- message (STATUS ${CMAKE_CURRENT_SOURCE_DIR } )
6528find_package (Git )
6629if (EXISTS ${CMAKE_SOURCE_DIR } /.git AND ${GIT_FOUND} )
67- add_custom_target (
68- evaluate_every_build ALL
69- COMMAND ${CMAKE_COMMAND } -D_GIT_EXECUTABLE_=${GIT_EXECUTABLE}
70- -D_CMAKE_SOURCE_DIR_= "VAR1"
71- -D_CMAKE_CURRENT_SOURCE_DIR_= "VAR2"
72- -D_CMAKE_BINARY_DIR_=${CMAKE_BINARY_DIR}
73- -D_CMAKE_CURRENT_BINARY_DIR_=${CMAKE_CURRENT_BINARY_DIR}
74- -P ${CMAKE_SOURCE_DIR } /CMakeModules/VersionUtils.cmake
75- COMMENT "***********************Updating version metadata...**********************" VERBATIM )
76- # string(REGEX MATCH "-dirty$" _VERSION_DIRTY_ ${_VERSION_DIRTY_})
77- # if("${_VERSION_DIRTY_}" STREQUAL "")
78- # set(_VERSION_DIRTY_ "false")
79- # else()
80- # set(_VERSION_DIRTY_ "true")
81- # endif()
82- # set(_VERSION_MAJOR_ ${VERSION_MAJOR} CACHE STRING "Current major version of repository")
83- # set(_VERSION_MINOR_ ${VERSION_MINOR} CACHE STRING "Current minor version of repository")
84- # set(_VERSION_PATCH_ ${VERSION_PATCH} CACHE STRING "Current patch version of repository")
85- # set(_VERSION_SUFFIX_ ${VERSION_SUFFIX} CACHE STRING "Current suffiex of repository")
86- # set(_VERSION_HASH_ ${_VERSION_HASH_} CACHE STRING "Current hash of repository")
87- # set(_VERSION_DIRTY_ ${_VERSION_DIRTY_} CACHE STRING "Current dirty state of repository")
88- message (STATUS "--------------------" )
89- message (STATUS ${_VERSION_MAJOR_} )
90- message (STATUS "--------------------" )
91- message (STATUS ${_VERSION_MINOR_} )
92- message (STATUS "--------------------" )
93- message (STATUS ${_VERSION_PATCH_} )
94- message (STATUS "--------------------" )
95- message (STATUS ${_VERSION_SUFFIX_} )
96- message (STATUS "--------------------" )
97- message (STATUS ${_VERSION_HASH_} )
98- message (STATUS "--------------------" )
99- message (STATUS ${_VERSION_DIRTY_} )
30+ add_custom_target (
31+ evaluate_every_build ALL
32+ COMMAND ${CMAKE_COMMAND } -DGIT_EXEC=${GIT_EXECUTABLE}
33+ -DLIB_BIN_DIR=${CMAKE_CURRENT_BINARY_DIR}
34+ -DLIB_CUR_DIR=${CMAKE_CURRENT_SOURCE_DIR}
35+ -DROOT_DIR=${CMAKE_SOURCE_DIR}
36+ -DV_MAJOR=${VERSION_MAJOR}
37+ -DV_MINOR=${VERSION_MINOR}
38+ -DV_PATCH=${VERSION_PATCH}
39+ -DV_SUFFIX=${VERSION_SUFFIX}
40+ -P ${CMAKE_SOURCE_DIR } /CMakeModules/VersionUtils.cmake
41+ COMMENT "Updating version metadata.." VERBATIM )
42+ else ()
43+ # Modify and substitute the `.cpp.in` file for a `.cpp` in the build directory.
44+ configure_file (
45+ ${CMAKE_CURRENT_SOURCE_DIR } /src/version_impl.cpp.in
46+ ${CMAKE_CURRENT_BINARY_DIR } /src/version_impl.cpp
47+ @ONLY )
10048endif ()
10149
102- # This one runs everytime; save
103- # Create a custom target to be run upon every build.
104- # find_package(Git)
105- # if(EXISTS ${CMAKE_SOURCE_DIR}/.git AND ${GIT_FOUND})
106- # add_custom_target( evaluate_every_build ALL
107- # COMMAND ${CMAKE_COMMAND} -E ${GIT_EXECUTABLE} --version
108- # COMMENT "generating........................" VERBATIM )
109- # string(REGEX MATCH "-dirty$" _VERSION_DIRTY_ ${_VERSION_DIRTY_})
110- # if("${_VERSION_DIRTY_}" STREQUAL "")
111- # set(_VERSION_DIRTY_ "false")
112- # else()
113- # set(_VERSION_DIRTY_ "true")
114- # endif()
115- # set(_VERSION_MAJOR_ ${VERSION_MAJOR} CACHE STRING "Current major version of repository")
116- # set(_VERSION_MINOR_ ${VERSION_MINOR} CACHE STRING "Current minor version of repository")
117- # set(_VERSION_PATCH_ ${VERSION_PATCH} CACHE STRING "Current patch version of repository")
118- # set(_VERSION_SUFFIX_ ${VERSION_SUFFIX} CACHE STRING "Current suffiex of repository")
119- # set(_VERSION_HASH_ ${_VERSION_HASH_} CACHE STRING "Current hash of repository")
120- # set(_VERSION_DIRTY_ ${_VERSION_DIRTY_} CACHE STRING "Current dirty state of repository")
121- # endif()
122-
123- # # Create a custom target to be run upon every build.
124- # add_custom_target( evaluate_every_build ALL
125- # COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/CMakeModules/VersionUtils.cmake
126- # COMMENT "generating........................" VERBATIM)
127-
128- # message(STATUS "BEFORE*******************")
129- # # Create a custom target to be run upon every build.
130- # find_package(Git)
131- # if(EXISTS ${CMAKE_SOURCE_DIR}/.git AND GIT_FOUND)
132- # message(STATUS "IN*******************")
133- # add_custom_target( evaluate_every_build ALL
134- # COMMAND
135- # COMMENT "generating........................" VERBATIM)
136- # message(STATUS "AFTER*******************")
137- # endif()
138- # message(STATUS "AFTER IF*******************")
139-
14050# Install the library in the appropriate places.
14151install (
14252 TARGETS version
@@ -149,9 +59,3 @@ install(
14959 DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR } /include/eosio/version
15060 DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} /eosio/
15161 FILES_MATCHING PATTERN "*.hpp" )
152-
153- # Modify and substitute the `.cpp.in` file for a `.cpp` in the build directory.
154- configure_file (
155- ${CMAKE_CURRENT_SOURCE_DIR } /src/version_impl.cpp.in
156- ${CMAKE_CURRENT_BINARY_DIR } /src/version_impl.cpp
157- @ONLY )
0 commit comments