Skip to content

Commit 9aa4681

Browse files
committed
Revert "Merge branch 'no-version'"
This reverts commit d9ced92, reversing changes made to d2fa664. Conflicts: include/json/version.h (keep)
1 parent af77b5b commit 9aa4681

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@
1010
/libs/
1111
/doc/doxyfile
1212
/dist/
13+
/include/json/version.h

CMakeLists.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,38 @@ FUNCTION(set_using_dynamic_name VAR_NAME VALUE)
3131
SET( "${VAR_NAME}" "${VALUE}" PARENT_SCOPE)
3232
ENDFUNCTION(set_using_dynamic_name)
3333

34+
# Extract major, minor, patch and qualifier from version text
35+
# Parse a version string "X.Y.Z[-qualifier]" and outputs
36+
# version parts in ${OUPUT_PREFIX}_MAJOR, _MINOR, _PATCH, _QUALIFIER.
37+
# If parse succed then ${OUPUT_PREFIX}_FOUND is TRUE.
38+
MACRO(jsoncpp_parse_version VERSION_TEXT OUPUT_PREFIX)
39+
SET(VERSION_REGEX "[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9_]+)?")
40+
IF( ${VERSION_TEXT} MATCHES ${VERSION_REGEX} )
41+
STRING(REGEX MATCHALL "[0-9]+|-([A-Za-z0-9_]+)" VERSION_PARTS ${VERSION_TEXT})
42+
list(APPEND VERSION_PARTS "") # empty qualifier to handle no qualifier case
43+
LIST(GET VERSION_PARTS 0 ${OUPUT_PREFIX}_MAJOR)
44+
LIST(GET VERSION_PARTS 1 ${OUPUT_PREFIX}_MINOR)
45+
LIST(GET VERSION_PARTS 2 ${OUPUT_PREFIX}_PATCH)
46+
LIST(GET VERSION_PARTS 3 ${OUPUT_PREFIX}_QUALIFIER)
47+
set_using_dynamic_name( "${OUPUT_PREFIX}_FOUND" TRUE )
48+
ELSE( ${VERSION_TEXT} MATCHES ${VERSION_REGEX} )
49+
set_using_dynamic_name( "${OUPUT_PREFIX}_FOUND" FALSE )
50+
ENDIF( ${VERSION_TEXT} MATCHES ${VERSION_REGEX} )
51+
ENDMACRO(jsoncpp_parse_version)
52+
53+
# Read out version from "version" file
54+
FILE(STRINGS "version" JSONCPP_VERSION)
55+
56+
jsoncpp_parse_version( ${JSONCPP_VERSION} JSONCPP_VERSION )
57+
IF(NOT JSONCPP_VERSION_FOUND)
58+
MESSAGE(FATAL_ERROR "Failed to parse version string properly. Expect X.Y.Z[-qualifier]")
59+
ENDIF(NOT JSONCPP_VERSION_FOUND)
60+
61+
MESSAGE(STATUS "JsonCpp Version: ${JSONCPP_VERSION_MAJOR}.${JSONCPP_VERSION_MINOR}.${JSONCPP_VERSION_PATCH}${JSONCPP_VERSION_QUALIFIER}")
62+
# File version.h is only regenerated on CMake configure step
63+
CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/src/lib_json/version.h.in"
64+
"${PROJECT_SOURCE_DIR}/include/json/version.h" )
65+
3466
macro(UseCompilationWarningAsError)
3567
if ( MSVC )
3668
# Only enabled in debug because some old versions of VS STL generate

src/lib_json/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ ADD_LIBRARY( jsoncpp_lib ${JSONCPP_LIB_TYPE}
3434
json_valueiterator.inl
3535
json_value.cpp
3636
json_writer.cpp
37+
version.h.in
3738
)
3839
SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES OUTPUT_NAME jsoncpp )
3940
SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES VERSION ${JSON_CPP_VERSION} SOVERSION ${JSON_CPP_VERSION} )

0 commit comments

Comments
 (0)