Skip to content

Commit d9c24cd

Browse files
author
johndebord
committed
Continuation; committing in case future reference needed
1 parent bcaba02 commit d9c24cd

2 files changed

Lines changed: 110 additions & 178 deletions

File tree

CMakeModules/VersionUtils.cmake

Lines changed: 85 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,86 @@
1-
# cmake_minimum_required(
2-
# VERSION 3.5 )
1+
cmake_minimum_required(
2+
VERSION 3.5 )
33

4-
# find_package(Git)
5-
# function(GENERATE_VERSION_METADATA)
6-
# message(STATUS "---------------------VersionUtils before if----------------------------------")
7-
# find_package(Git)
8-
# message(STATUS ${GIT_FOUND})
9-
# message(STATUS ${CMAKE_SOURCE_DIR})
10-
# if(EXISTS ${CMAKE_SOURCE_DIR}/.git AND GIT_FOUND)
11-
message(STATUS ${_CMAKE_SOURCE_DIR_})
12-
message(STATUS ${_CMAKE_CURRENT_SOURCE_DIR_})
13-
message(STATUS "-----------------VersionUtils in if----------------------------------")
14-
execute_process(
15-
COMMAND ${_GIT_EXECUTABLE_} rev-parse HEAD
16-
OUTPUT_VARIABLE _VERSION_HASH_
17-
ERROR_QUIET
18-
OUTPUT_STRIP_TRAILING_WHITESPACE )
19-
execute_process(
20-
COMMAND ${_GIT_EXECUTABLE_} describe --tags --dirty
21-
OUTPUT_VARIABLE _VERSION_DIRTY_
22-
ERROR_QUIET
23-
OUTPUT_STRIP_TRAILING_WHITESPACE )
24-
string(REGEX MATCH "-dirty$" _VERSION_DIRTY_ ${_VERSION_DIRTY_})
25-
26-
message(STATUS "--------------------")
27-
message(STATUS ${_VERSION_MAJOR_})
28-
message(STATUS "--------------------")
29-
message(STATUS ${_VERSION_MINOR_})
30-
message(STATUS "--------------------")
31-
message(STATUS ${_VERSION_PATCH_})
32-
message(STATUS "--------------------")
33-
message(STATUS ${_VERSION_SUFFIX_})
34-
message(STATUS "--------------------")
35-
message(STATUS ${_VERSION_HASH_})
36-
message(STATUS "--------------------")
37-
message(STATUS ${_VERSION_DIRTY_})
38-
if("${_VERSION_DIRTY_}" STREQUAL "")
39-
set(_VERSION_TEMP_ "false" CACHE STRING "Current dirty state of repository" FORCE)
40-
else()
41-
set(_VERSION_TEMP_ "true" CACHE STRING "Current dirty state of repository" FORCE)
42-
endif()
43-
# set(_VERSION_MAJOR_ ${VERSION_MAJOR})
44-
# set(_VERSION_MINOR_ ${VERSION_MINOR})
45-
# set(_VERSION_PATCH_ ${VERSION_PATCH})
46-
# set(_VERSION_SUFFIX_ ${VERSION_SUFFIX})
47-
# set(_VERSION_HASH_ ${_VERSION_HASH_})
48-
# set(_VERSION_DIRTY_ ${_VERSION_DIRTY_})
49-
# else()
50-
# set(_VERSION_MAJOR_ "unknown")
51-
# set(_VERSION_MINOR_ "")
52-
# set(_VERSION_PATCH_ "")
53-
# set(_VERSION_SUFFIX_ "")
54-
# set(_VERSION_HASH_ "")
55-
# set(_VERSION_DIRTY_ "")
56-
# endif()
57-
message(STATUS "--------------VersionUtils after if----------------------------------")
58-
# endfunction(GENERATE_VERSION_METADATA)
4+
function(GENERATE_VERSION_METADATA)
5+
# Execute `git` to grab the corresponding data.
6+
message(STATUS "*********************************")
7+
message(STATUS ${CMAKE_CURRENT_SOURCE_DIR})
8+
message(STATUS "*********************************")
9+
message(STATUS ${ROOT_DIR})
10+
message(STATUS "*********************************")
11+
message(STATUS ${GIT_EXEC})
12+
message(STATUS "*********************************")
13+
message(STATUS ${LIB_BIN_DIR})
14+
message(STATUS "*********************************")
15+
message(STATUS ${LIB_CUR_DIR})
16+
message(STATUS "*********************************")
17+
message(STATUS ${V_MAJOR})
18+
message(STATUS "*********************************")
19+
message(STATUS ${V_MINOR})
20+
message(STATUS "*********************************")
21+
message(STATUS ${V_PATCH})
22+
message(STATUS "*********************************")
23+
message(STATUS ${V_SUFFIX})
24+
message(STATUS "*********************************")
25+
execute_process(
26+
COMMAND ${GIT_EXEC} rev-parse HEAD
27+
WORKING_DIRECTORY ${ROOT_DIR}
28+
OUTPUT_VARIABLE _VERSION_HASH_
29+
ERROR_QUIET
30+
OUTPUT_STRIP_TRAILING_WHITESPACE )
31+
execute_process(
32+
COMMAND ${GIT_EXEC} describe --tags --dirty
33+
WORKING_DIRECTORY ${ROOT_DIR}
34+
OUTPUT_VARIABLE _VERSION_DIRTY_
35+
ERROR_QUIET
36+
OUTPUT_STRIP_TRAILING_WHITESPACE )
37+
38+
message(STATUS "*********************************")
39+
message(STATUS ${_VERSION_HASH_})
40+
message(STATUS "*********************************")
41+
message(STATUS ${_VERSION_DIRTY_})
42+
message(STATUS "*********************************")
43+
44+
string(REGEX MATCH "-dirty$" _VERSION_DIRTY_ ${_VERSION_DIRTY_})
45+
46+
if("${_VERSION_DIRTY_}" STREQUAL "")
47+
set(_VERSION_DIRTY_ "false")
48+
else()
49+
set(_VERSION_DIRTY_ "true")
50+
endif()
51+
52+
# message(STATUS "*********************************")
53+
# message(STATUS ${V_MAJOR})
54+
# message(STATUS "*********************************")
55+
# message(STATUS ${V_MINOR})
56+
# message(STATUS "*********************************")
57+
# message(STATUS ${V_PATCH})
58+
# message(STATUS "*********************************")
59+
# message(STATUS ${V_SUFFIX})
60+
# message(STATUS "*********************************")
61+
62+
set(_VERSION_MAJOR_ ${V_MAJOR})
63+
set(_VERSION_MINOR_ ${V_MINOR})
64+
set(_VERSION_PATCH_ ${V_PATCH})
65+
set(_VERSION_SUFFIX_ ${V_SUFFIX})
66+
set(_VERSION_HASH_ ${_VERSION_HASH_})
67+
set(_VERSION_DIRTY_ ${_VERSION_DIRTY_})
68+
69+
# message(STATUS "*********************************")
70+
# message(STATUS ${_VERSION_MAJOR_})
71+
# message(STATUS "*********************************")
72+
# message(STATUS ${_VERSION_MINOR_})
73+
# message(STATUS "*********************************")
74+
# message(STATUS ${_VERSION_PATCH_})
75+
# message(STATUS "*********************************")
76+
# message(STATUS ${_VERSION_SUFFIX_})
77+
# message(STATUS "*********************************")
78+
79+
# Modify and substitute the `.cpp.in` file for a `.cpp` in the build directory.
80+
configure_file(
81+
${LIB_CUR_DIR}/src/version_impl.cpp.in
82+
${LIB_BIN_DIR}/src/version_impl.cpp
83+
@ONLY )
84+
endfunction(GENERATE_VERSION_METADATA)
85+
86+
GENERATE_VERSION_METADATA()

libraries/version/CMakeLists.txt

Lines changed: 25 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,13 @@ cmake_minimum_required(
44
project(
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.
5016
add_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})
6528
find_package(Git)
6629
if(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 )
10048
endif()
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.
14151
install(
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

Comments
 (0)