Skip to content

Commit ecc30d1

Browse files
committed
updated to use vcpkg/system for most deps
1 parent 4d2c3b5 commit ecc30d1

File tree

3 files changed

+64
-80
lines changed

3 files changed

+64
-80
lines changed

CMakeLists.txt

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,71 @@
55
#
66
# Official repository: https://github.com/beached/json_to_cpp
77
#
8-
9-
108
cmake_minimum_required(VERSION 3.13)
119

1210
project("json_to_cpp"
13-
VERSION "2.0.1"
14-
DESCRIPTION "Try to use the JSON structures to make C++ structures and bindings"
11+
VERSION "2.1.0"
12+
DESCRIPTION "Try to use the JSON structures to make C++ structures and bindings"
1513
HOMEPAGE_URL "https://github.com/beached/json_to_cpp"
1614
LANGUAGES C CXX)
1715

1816
set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard whose features are requested.")
1917
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2018
set(CMAKE_CXX_EXTENSIONS OFF)
19+
set(Boost_NO_WARN_NEW_VERSIONS ON)
2120

22-
find_package( Boost 1.60.0 COMPONENTS program_options REQUIRED )
23-
find_package( CURL REQUIRED )
24-
find_package( OpenSSL REQUIRED )
21+
find_package(Boost 1.60.0 COMPONENTS program_options REQUIRED)
22+
find_package(CURL REQUIRED)
23+
find_package(OpenSSL REQUIRED)
24+
find_package(daw-header-libraries REQUIRED)
25+
find_package(daw-utf-range REQUIRED)
26+
find_package(date REQUIRED)
27+
find_package(fmt REQUIRED)
2528
add_subdirectory(extern)
2629

27-
set( HEADER_FOLDER include )
28-
set( SOURCE_FOLDER src )
30+
set(HEADER_FOLDER include)
31+
set(SOURCE_FOLDER src)
2932

30-
set( HEADER_FILES
31-
${HEADER_FOLDER}/curl_t.h
32-
${HEADER_FOLDER}/json_to_cpp.h
33-
${HEADER_FOLDER}/json_to_cpp_config.h
34-
${HEADER_FOLDER}/ti_value.h
35-
${HEADER_FOLDER}/types/ti_array.h
36-
${HEADER_FOLDER}/types/ti_base.h
37-
${HEADER_FOLDER}/types/ti_boolean.h
38-
${HEADER_FOLDER}/types/ti_integral.h
39-
${HEADER_FOLDER}/types/ti_kv.h
40-
${HEADER_FOLDER}/types/ti_null.h
41-
${HEADER_FOLDER}/types/ti_object.h
42-
${HEADER_FOLDER}/types/ti_real.h
43-
${HEADER_FOLDER}/types/ti_string.h
44-
${HEADER_FOLDER}/types/ti_types.h
45-
)
33+
set(HEADER_FILES
34+
${HEADER_FOLDER}/curl_t.h
35+
${HEADER_FOLDER}/json_to_cpp.h
36+
${HEADER_FOLDER}/json_to_cpp_config.h
37+
${HEADER_FOLDER}/ti_value.h
38+
${HEADER_FOLDER}/types/ti_array.h
39+
${HEADER_FOLDER}/types/ti_base.h
40+
${HEADER_FOLDER}/types/ti_boolean.h
41+
${HEADER_FOLDER}/types/ti_integral.h
42+
${HEADER_FOLDER}/types/ti_kv.h
43+
${HEADER_FOLDER}/types/ti_null.h
44+
${HEADER_FOLDER}/types/ti_object.h
45+
${HEADER_FOLDER}/types/ti_real.h
46+
${HEADER_FOLDER}/types/ti_string.h
47+
${HEADER_FOLDER}/types/ti_types.h
48+
)
4649

47-
set( SOURCE_FILES
48-
${SOURCE_FOLDER}/curl_t.cpp
49-
${SOURCE_FOLDER}/json_to_cpp.cpp
50-
${SOURCE_FOLDER}/ti_array.cpp
51-
${SOURCE_FOLDER}/ti_kv.cpp
52-
${SOURCE_FOLDER}/ti_object.cpp
53-
${SOURCE_FOLDER}/main.cpp
54-
)
50+
set(SOURCE_FILES
51+
${SOURCE_FOLDER}/curl_t.cpp
52+
${SOURCE_FOLDER}/json_to_cpp.cpp
53+
${SOURCE_FOLDER}/ti_array.cpp
54+
${SOURCE_FOLDER}/ti_kv.cpp
55+
${SOURCE_FOLDER}/ti_object.cpp
56+
${SOURCE_FOLDER}/main.cpp
57+
)
5558

56-
add_executable( ${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES} )
57-
target_link_libraries( ${PROJECT_NAME} PRIVATE
58-
daw::parse_json
59-
daw::utf_range
60-
daw::header_libraries
61-
Boost::program_options
62-
daw::libtemp_file
63-
date::date
64-
OpenSSL::SSL
65-
OpenSSL::Crypto
66-
CURL::libcurl
67-
fmt::fmt
68-
)
69-
target_include_directories( ${PROJECT_NAME} PRIVATE ${HEADER_FOLDER} )
59+
add_executable(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES})
60+
target_link_libraries(${PROJECT_NAME} PRIVATE
61+
daw::daw-utf-range
62+
daw::daw-header-libraries
63+
daw::parse_json
64+
Boost::program_options
65+
daw::libtemp_file
66+
date::date
67+
OpenSSL::SSL
68+
OpenSSL::Crypto
69+
CURL::libcurl
70+
fmt::fmt
71+
)
72+
target_include_directories(${PROJECT_NAME} PRIVATE ${HEADER_FOLDER})
7073

7174
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
7275

extern/CMakeLists.txt

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,23 @@
77
#
88

99
# This prevents tests running on dependencies
10-
option( DAW_ENABLE_TESTING "Build unit tests" OFF )
11-
if( DAW_ENABLE_TESTING )
12-
set( DAW_ENABLE_TESTING OFF )
13-
endif( )
10+
option(DAW_ENABLE_TESTING "Build unit tests" OFF)
11+
if (DAW_ENABLE_TESTING)
12+
set(DAW_ENABLE_TESTING OFF)
13+
endif ()
1414

15-
include( FetchContent )
16-
set( FETCHCONTENT_UPDATES_DISCONNECTED ON )
15+
include(FetchContent)
1716

1817
FetchContent_Declare(
19-
daw_header_libraries
20-
GIT_REPOSITORY https://github.com/beached/header_libraries.git
18+
daw_parse_json
19+
GIT_REPOSITORY https://github.com/beached/parse_json.git
20+
GIT_TAG v1.1.0
2121
)
2222

2323
FetchContent_Declare(
24-
daw_utf_range
25-
GIT_REPOSITORY https://github.com/beached/utf_range.git
24+
daw_libtemp_file
25+
GIT_REPOSITORY https://github.com/beached/libtemp_file.git
2626
)
2727

28-
FetchContent_Declare(
29-
daw_parse_json
30-
GIT_REPOSITORY https://github.com/beached/parse_json.git
31-
)
32-
33-
FetchContent_Declare(
34-
daw_libtemp_file
35-
GIT_REPOSITORY https://github.com/beached/libtemp_file.git
36-
)
37-
38-
FetchContent_Declare(
39-
fmtlib
40-
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
41-
)
42-
43-
option( ENABLE_DATE_TESTING "" OFF )
44-
option( USE_SYSTEM_TZ_DB "" ON )
45-
FetchContent_Declare(
46-
date
47-
GIT_REPOSITORY https://github.com/howardhinnant/date.git
48-
)
49-
50-
FetchContent_MakeAvailable(daw_header_libraries daw_utf_range daw_parse_json daw_libtemp_file date fmtlib )
28+
FetchContent_MakeAvailable(daw_parse_json daw_libtemp_file)
5129

src/json_to_cpp.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ namespace daw::json_to_cpp {
7575
name = find_replace( name, "\\u", "0x" );
7676
// JSON member names are strings. That is it, so empty looks
7777
// like it is valid, as is all digits, or C++ keywords.
78+
if( auto pos = name.find( '@' ); pos != std::string::npos ) {
79+
name[pos] = '_';
80+
}
7881
if( name.empty( ) or
7982
not( std::isalpha( name.front( ) ) or name.front( ) == '_' ) or
8083
keywords.count( { name.data( ), name.size( ) } ) > 0 ) {

0 commit comments

Comments
 (0)