@@ -86,37 +86,43 @@ endif(WIN32)
86
86
87
87
# Check if this is source package build
88
88
if (NOT IS_DIRECTORY ${CMAKE_SOURCE_DIR} /.git)
89
- set (SOURCE_PACKAGE 1)
89
+ set (SOURCE_PACKAGE 1)
90
+ else ()
91
+ set (SOURCE_PACKAGE 0)
90
92
endif ()
91
93
92
94
#
93
95
# Set package version
94
96
#
95
-
97
+ file (MAKE_DIRECTORY " ${CMAKE_CURRENT_BINARY_DIR} /src/" ) # the src/ subdirectory won't exist yet
96
98
if (DEFINED PROJECT_VERSION)
97
- #project version is defined by -D on the cmake command line
98
- # only use that value, do not upate it at make time
99
- EXECUTE_PROCESS ( COMMAND ${CMAKE_CURRENT_SOURCE_DIR} /tools/create_version_h.sh ${CMAKE_CURRENT_BINARY_DIR} /src/version_gen.h ${PROJECT_VERSION}
100
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
101
- )
99
+ #project version is defined by -D on the cmake command line
100
+ # only use that value, do not upate it at make time
101
+ execute_process (
102
+ COMMAND ${CMAKE_SOURCE_DIR} /tools/create_version_h.sh ${CMAKE_CURRENT_BINARY_DIR} /src/version_gen.h ${PROJECT_VERSION}
103
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
104
+ )
102
105
else (DEFINED PROJECT_VERSION)
103
- if (NOT SOURCE_PACKAGE)
104
- # this part is setting the corresponding CMake variable which gets used for example when creating a source package
105
- EXECUTE_PROCESS (COMMAND git describe --tags --dirty
106
- COMMAND sed "s,^release-,,;s,-,+,;s,-,~,;" OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PROJECT_VERSION
107
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
108
- add_custom_target (
109
- generate_version ALL
110
- COMMAND ${CMAKE_CURRENT_SOURCE_DIR} /tools/create_version_h.sh ${CMAKE_CURRENT_BINARY_DIR} /src/version_gen.h
111
- COMMENT "Updating version string"
112
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
113
- )
114
- else (NOT SOURCE_PACKAGE)
115
- set (PROJECT_VERSION "archive-$Format:%H$" )
116
- execute_process ( COMMAND ${CMAKE_CURRENT_SOURCE_DIR} /tools/create_version_h.sh ${CMAKE_CURRENT_BINARY_DIR} /src/version_gen.h ${PROJECT_VERSION}
117
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
118
- )
119
- endif (NOT SOURCE_PACKAGE)
106
+ if (NOT SOURCE_PACKAGE) # i.e., a git checkout
107
+ # this part is setting the corresponding CMake variable which gets used for example when creating a source package
108
+ execute_process (
109
+ COMMAND git describe --tags --dirty
110
+ COMMAND sed "s,^release-,,;s,-,+,;s,-,~,;" OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PROJECT_VERSION
111
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} )
112
+ add_custom_target (generate_version ALL
113
+ COMMAND ${CMAKE_SOURCE_DIR} /tools/create_version_h.sh ${CMAKE_CURRENT_BINARY_DIR} /src/version_gen.h
114
+ COMMENT "Updating version string"
115
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
116
+ )
117
+ elseif (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /src/version_gen.h)
118
+ # no need to create version_gen.h if it's already shipped. that is for example the case with our release tarballs
119
+ # else(NOT SOURCE_PACKAGE)
120
+ set (PROJECT_VERSION "archive-$Format:%H$" )
121
+ execute_process (
122
+ COMMAND ${CMAKE_SOURCE_DIR} /tools/create_version_h.sh ${CMAKE_CURRENT_BINARY_DIR} /src/version_gen.h ${PROJECT_VERSION}
123
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
124
+ )
125
+ endif (NOT SOURCE_PACKAGE)
120
126
endif (DEFINED PROJECT_VERSION)
121
127
122
128
0 commit comments