Skip to content

Commit 0342e5c

Browse files
Separate third party libraries; resolves #79 (#119)
1 parent d8549e8 commit 0342e5c

11 files changed

+63
-7
lines changed

CMakeLists.txt

+25-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ option(REFLECTCPP_YAML "Enable YAML support" OFF)
1313
option(REFLECTCPP_BUILD_BENCHMARKS "Build benchmarks" OFF)
1414
option(REFLECTCPP_BUILD_TESTS "Build tests" OFF)
1515

16+
option(REFLECTCPP_USE_BUNDLED_DEPENDENCIES "Use the bundled dependencies" ON)
17+
1618
set(REFLECTCPP_USE_VCPKG_DEFAULT OFF)
1719
if (REFLECTCPP_BUILD_TESTS OR REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_BSON OR REFLECTCPP_CBOR OR REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_MSGPACK OR REFLECTCPP_XML OR REFLECTCPP_TOML OR REFLECTCPP_YAML)
1820
# enable vcpkg per default if require features other than JSON
@@ -29,15 +31,32 @@ project(reflectcpp)
2931

3032
set(CMAKE_CXX_STANDARD 20)
3133

32-
if (REFLECTCPP_BUILD_SHARED)
33-
add_library(reflectcpp SHARED src/yyjson.c)
34-
else ()
35-
add_library(reflectcpp STATIC src/yyjson.c)
36-
endif ()
34+
if(REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
35+
if (REFLECTCPP_BUILD_SHARED)
36+
add_library(reflectcpp SHARED src/yyjson.c)
37+
else()
38+
add_library(reflectcpp STATIC src/yyjson.c)
39+
endif()
40+
else()
41+
if (REFLECTCPP_BUILD_SHARED)
42+
add_library(reflectcpp SHARED)
43+
else()
44+
add_library(reflectcpp STATIC)
45+
endif()
46+
endif()
3747

48+
set_target_properties(reflectcpp PROPERTIES LINKER_LANGUAGE CXX)
3849
target_compile_features(reflectcpp PUBLIC cxx_std_20)
3950

40-
target_include_directories(reflectcpp PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> )
51+
if(REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
52+
target_include_directories(reflectcpp PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/rfl/thirdparty>)
53+
else()
54+
target_include_directories(reflectcpp PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> )
55+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DREFLECTCPP_NO_BUNDLED_DEPENDENCIES")
56+
find_package(ctre CONFIG REQUIRED)
57+
find_package(yyjson CONFIG REQUIRED)
58+
target_link_libraries(reflectcpp INTERFACE yyjson::yyjson)
59+
endif()
4160

4261
if (REFLECTCPP_BSON OR REFLECTCPP_BUILD_BENCHMARKS)
4362
find_package(bson-1.0 CONFIG REQUIRED)

include/rfl/PatternValidator.hpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33

44
#include <string>
55

6-
#include "../ctre.hpp"
6+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
7+
#include <ctre.hpp>
8+
#else
9+
#include "thirdparty/ctre.hpp"
10+
#endif
11+
712
#include "Literal.hpp"
813
#include "Result.hpp"
914
#include "internal/StringLiteral.hpp"

include/rfl/json/Reader.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef RFL_JSON_READER_HPP_
22
#define RFL_JSON_READER_HPP_
33

4+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
45
#include <yyjson.h>
6+
#else
7+
#include "../thirdparty/yyjson.h"
8+
#endif
59

610
#include <array>
711
#include <concepts>

include/rfl/json/Writer.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef RFL_JSON_WRITER_HPP_
22
#define RFL_JSON_WRITER_HPP_
33

4+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
45
#include <yyjson.h>
6+
#else
7+
#include "../thirdparty/yyjson.h"
8+
#endif
59

610
#include <exception>
711
#include <map>

include/rfl/json/read.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef RFL_JSON_READ_HPP_
22
#define RFL_JSON_READ_HPP_
33

4+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
45
#include <yyjson.h>
6+
#else
7+
#include "../thirdparty/yyjson.h"
8+
#endif
59

610
#include <istream>
711
#include <string>

include/rfl/json/save.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef RFL_JSON_SAVE_HPP_
22
#define RFL_JSON_SAVE_HPP_
33

4+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
45
#include <yyjson.h>
6+
#else
7+
#include "../thirdparty/yyjson.h"
8+
#endif
59

610
#include <fstream>
711
#include <iostream>

include/rfl/json/to_schema.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef RFL_JSON_TOSCHEMA_HPP_
22
#define RFL_JSON_TOSCHEMA_HPP_
33

4+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
45
#include <yyjson.h>
6+
#else
7+
#include "../thirdparty/yyjson.h"
8+
#endif
59

610
#include <map>
711
#include <string>

include/rfl/json/write.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#ifndef RFL_JSON_WRITE_HPP_
22
#define RFL_JSON_WRITE_HPP_
33

4+
#ifdef REFLECTCPP_NO_BUNDLED_DEPENDENCIES
45
#include <yyjson.h>
6+
#else
7+
#include "../thirdparty/yyjson.h"
8+
#endif
59

610
#include <ostream>
711
#include <sstream>
File renamed without changes.
File renamed without changes.

vcpkg.json

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"version-string": "0.8.0",
44
"builtin-baseline": "50bffcc62d7f6571eb32bc1a0b1807e77af1166c",
55
"dependencies": [
6+
{
7+
"name": "ctre",
8+
"version>=": "3.8"
9+
},
610
{
711
"name": "flatbuffers",
812
"version>=": "23.5.26#1"
@@ -43,6 +47,10 @@
4347
"name": "yaml-cpp",
4448
"version>=": "0.8.0#1"
4549
},
50+
{
51+
"name": "yyjson",
52+
"version>=": "0.8.0"
53+
},
4654
{
4755
"name": "benchmark",
4856
"version>=": "1.8.3"

0 commit comments

Comments
 (0)