Skip to content

Commit 07cf980

Browse files
Split up the test pipeline for faster test runs (#471)
1 parent c5f0a24 commit 07cf980

File tree

8 files changed

+138
-84
lines changed

8 files changed

+138
-84
lines changed

.github/workflows/linux-conan.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: linux
2+
3+
on: [ push, pull_request ]
4+
5+
jobs:
6+
linux:
7+
name: "${{ github.job }} (Conan)"
8+
runs-on: ubuntu-24.04
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v4
12+
with:
13+
submodules: recursive
14+
fetch-depth: 0
15+
- name: Install dependencies
16+
run: |
17+
sudo apt update
18+
sudo apt install -y ninja-build pipx
19+
- name: Install Conan
20+
run: |
21+
pipx install conan
22+
conan profile detect
23+
- name: Make sure the library compiles with Conan
24+
run: conan build . --build=missing -s compiler.cppstd=gnu20 -o *:with_capnproto=True -o *:with_cbor=True -o *:with_flatbuffers=True -o *:with_msgpack=True -o *:with_toml=True -o *:with_ubjson=True -o *:with_xml=True -o *:with_yaml=True
25+

.github/workflows/linux.yaml

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,41 @@ jobs:
1010
strategy:
1111
fail-fast: false
1212
matrix:
13-
include:
14-
- compiler: llvm
13+
format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "FLEXBUFFERS", "MSGPACK", "XML", "TOML", "UBJSON", "YAML", "benchmarks"]
14+
compiler: [llvm, gcc]
15+
compiler-version: [11, 12, 13, 14, 16, 17, 18]
16+
cxx: [20, 23]
17+
exclude:
18+
- compiler: gcc
1519
compiler-version: 16
16-
cxx: 20
17-
- compiler: llvm
20+
- compiler: gcc
1821
compiler-version: 17
19-
cxx: 20
20-
- compiler: llvm
22+
- compiler: gcc
2123
compiler-version: 18
22-
cxx: 20
23-
- compiler: gcc
24+
- compiler: llvm
2425
compiler-version: 11
25-
additional-dep: "g++-11"
26-
cxx: 20
27-
- compiler: gcc
26+
- compiler: llvm
2827
compiler-version: 12
29-
cxx: 20
30-
- compiler: gcc
28+
- compiler: llvm
3129
compiler-version: 13
32-
cxx: 20
33-
- compiler: gcc
30+
- compiler: llvm
3431
compiler-version: 14
35-
cxx: 20
3632
- compiler: gcc
37-
compiler-version: 13
33+
compiler-version: 11
3834
cxx: 23
3935
- compiler: gcc
40-
compiler-version: 14
36+
compiler-version: 12
4137
cxx: 23
42-
name: "${{ github.job }} (C++${{ matrix.cxx }}-${{ matrix.compiler }}-${{ matrix.compiler-version }})"
38+
- compiler: gcc
39+
compiler-version: 13
40+
cxx: 23
41+
- compiler: llvm
42+
compiler-version: 16
43+
cxx: 23
44+
- compiler: llvm
45+
compiler-version: 17
46+
cxx: 23
47+
name: "${{ github.job }} (${{ matrix.format }}-C++${{ matrix.cxx }}-${{ matrix.compiler }}-${{ matrix.compiler-version }})"
4348
runs-on: ubuntu-24.04
4449
steps:
4550
- name: Checkout
@@ -53,24 +58,16 @@ jobs:
5358
script: |
5459
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
5560
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
56-
- name: Setup ccache
57-
uses: hendrikmuhs/ccache-action@v1
58-
with:
59-
key: "${{ github.job }}-${{ matrix.compiler }}-${{ matrix.compiler-version }}"
60-
max-size: "2G"
6161
- name: Run vcpkg
6262
uses: lukka/run-vcpkg@v11
6363
- name: Install dependencies
6464
run: |
6565
sudo apt update
66-
sudo apt install -y ninja-build ${{ matrix.additional-dep }}
67-
- name: Install Conan
68-
run: |
69-
sudo apt install -y pipx
70-
pipx install conan
71-
conan profile detect
72-
- name: Make sure the library compiles with Conan
73-
run: conan build . --build=missing -s compiler.cppstd=gnu20 -o *:with_capnproto=True -o *:with_cbor=True -o *:with_flatbuffers=True -o *:with_msgpack=True -o *:with_toml=True -o *:with_ubjson=True -o *:with_xml=True -o *:with_yaml=True
66+
if [[ "${{ matrix.compiler-version }}" == 11 ]]; then
67+
sudo apt install -y ninja-build g++-11
68+
else
69+
sudo apt install -y ninja-build
70+
fi
7471
- name: Compile
7572
run: |
7673
if [[ "${{ matrix.compiler }}" == "llvm" ]]; then
@@ -80,15 +77,21 @@ jobs:
8077
export CC=gcc-${{ matrix.compiler-version }}
8178
export CXX=g++-${{ matrix.compiler-version }}
8279
fi
83-
sudo ln -s $(which ccache) /usr/local/bin/$CC
84-
sudo ln -s $(which ccache) /usr/local/bin/$CXX
8580
$CXX --version
86-
cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_BSON=ON -DREFLECTCPP_CAPNPROTO=ON -DREFLECTCPP_CBOR=ON -DREFLECTCPP_FLEXBUFFERS=ON -DREFLECTCPP_MSGPACK=ON -DREFLECTCPP_TOML=ON -DREFLECTCPP_XML=ON -DREFLECTCPP_YAML=ON -DCMAKE_BUILD_TYPE=Release
87-
cmake --build build
81+
if [[ "${{ matrix.format }}" == "JSON" ]]; then
82+
cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release
83+
elif [[ "${{ matrix.format }}" == "benchmarks" ]]; then
84+
cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_ALL_FORMATS=ON -DCMAKE_BUILD_TYPE=Release
85+
else
86+
cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_JSON=OFF -DREFLECTCPP_${{ matrix.format }}=ON -DCMAKE_BUILD_TYPE=Release
87+
fi
88+
cmake --build build -j4
8889
- name: Run tests
90+
if: matrix.format != 'benchmarks'
8991
run: |
9092
ctest --test-dir build --output-on-failure
91-
- name: Run benchmarks
93+
- name: Run benchmarks
94+
if: matrix.format == 'benchmarks'
9295
run: |
9396
echo '# Benchmarks' >> $GITHUB_STEP_SUMMARY
9497
echo '## Benchmarks across different formats' >> $GITHUB_STEP_SUMMARY

.github/workflows/macos.yaml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
os: ["macos-latest", "macos-13"]
14+
format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "FLEXBUFFERS", "MSGPACK", "XML", "TOML", "UBJSON", "YAML", "benchmarks"]
15+
name: "${{ matrix.os }} (${{ matrix.format }})"
1416
runs-on: ${{ matrix.os }}
1517
steps:
1618
- name: Checkout
@@ -24,19 +26,8 @@ jobs:
2426
script: |
2527
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
2628
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
27-
- name: Setup ccache
28-
uses: hendrikmuhs/ccache-action@v1
29-
with:
30-
key: "${{ github.job }}-${{ matrix.os }}"
31-
max-size: "2G"
32-
create-symlink: true
3329
- name: Run vcpkg
3430
uses: lukka/run-vcpkg@v11
35-
- name: Install Conan
36-
run: |
37-
brew install pipx
38-
pipx install conan
39-
conan profile detect
4031
- name: Install ninja
4132
run: brew install ninja
4233
if: matrix.os == 'macos-latest'
@@ -50,12 +41,20 @@ jobs:
5041
export CMAKE_GENERATOR=Ninja
5142
fi
5243
$CXX --version
53-
cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_BSON=ON -DREFLECTCPP_CAPNPROTO=ON -DREFLECTCPP_CBOR=ON -DREFLECTCPP_FLEXBUFFERS=ON -DREFLECTCPP_MSGPACK=ON -DREFLECTCPP_TOML=ON -DREFLECTCPP_XML=ON -DREFLECTCPP_YAML=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
44+
if [[ "${{ matrix.format }}" == "JSON" ]]; then
45+
cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
46+
elif [[ "${{ matrix.format }}" == "benchmarks" ]]; then
47+
cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_ALL_FORMATS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
48+
else
49+
cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_JSON=OFF -DREFLECTCPP_${{ matrix.format }}=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
50+
fi
5451
cmake --build build -j 4
5552
- name: Run tests
53+
if: matrix.format != 'benchmarks'
5654
run: |
5755
ctest --test-dir build --output-on-failure
58-
- name: Run benchmarks
56+
- name: Run benchmarks
57+
if: matrix.format == 'benchmarks'
5958
run: |
6059
echo '# Benchmarks' >> $GITHUB_STEP_SUMMARY
6160
echo '## Benchmarks across different formats' >> $GITHUB_STEP_SUMMARY

.github/workflows/windows.yaml

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ env:
77

88
jobs:
99
windows-msvc:
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
format: ["JSON", "CAPNPROTO", "CBOR", "FLEXBUFFERS", "MSGPACK", "XML", "TOML", "UBJSON", "YAML", "benchmarks"]
14+
name: "windows-msvc (${{ matrix.format }})"
1015
runs-on: windows-latest
1116
steps:
1217
- name: Checkout
@@ -22,29 +27,41 @@ jobs:
2227
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
2328
- uses: ilammy/msvc-dev-cmd@v1
2429
- uses: lukka/run-vcpkg@v11
25-
- name: Compile
30+
- name: Compile benchmarks
31+
if: matrix.format == 'benchmarks'
2632
run: |
27-
cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_BSON=ON -DREFLECTCPP_CAPNPROTO=ON -DREFLECTCPP_CBOR=ON -DREFLECTCPP_FLEXBUFFERS=ON -DREFLECTCPP_MSGPACK=ON -DREFLECTCPP_XML=ON -DREFLECTCPP_TOML=ON -DREFLECTCPP_YAML=ON -DCMAKE_BUILD_TYPE=Release
33+
cmake -S . -B build -G Ninja -DCMAKE_CXX_STANDARD=${{ matrix.cxx }} -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_ALL_FORMATS=ON -DCMAKE_BUILD_TYPE=Release
34+
cmake --build build --config Release -j4
35+
- name: Compile tests (JSON)
36+
if: matrix.format == 'JSON'
37+
run: |
38+
cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release
39+
cmake --build build --config Release -j4
40+
- name: Compile tests (Other formats)
41+
if: matrix.format != 'JSON' && matrix.format != 'benchmarks'
42+
run: |
43+
cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_JSON=OFF -DREFLECTCPP_${{ matrix.format }}=ON -DCMAKE_BUILD_TYPE=Release
2844
cmake --build build --config Release -j4
2945
- name: Run tests
3046
run: |
3147
ctest --test-dir build --output-on-failure
32-
- name: Run benchmarks
48+
- name: Run benchmarks
49+
if: matrix.format == 'benchmarks'
3350
run: |
34-
echo '# Benchmarks' >> $env:GITHUB_STEP_SUMMARY
35-
echo '## Benchmarks across different formats' >> $env:GITHUB_STEP_SUMMARY
36-
echo '```' >> $env:GITHUB_STEP_SUMMARY
37-
.\build\benchmarks\all\Release\reflect-cpp-all-format-benchmarks.exe --benchmark_filter=canada_read >> $env:GITHUB_STEP_SUMMARY
38-
.\build\benchmarks\all\Release\reflect-cpp-all-format-benchmarks.exe --benchmark_filter=canada_write >> $env:GITHUB_STEP_SUMMARY
39-
.\build\benchmarks\all\Release\reflect-cpp-all-format-benchmarks.exe --benchmark_filter=licenses_read >> $env:GITHUB_STEP_SUMMARY
40-
.\build\benchmarks\all\Release\reflect-cpp-all-format-benchmarks.exe --benchmark_filter=licenses_write >> $env:GITHUB_STEP_SUMMARY
41-
.\build\benchmarks\all\Release\reflect-cpp-all-format-benchmarks.exe --benchmark_filter=person_read >> $env:GITHUB_STEP_SUMMARY
42-
.\build\benchmarks\all\Release\reflect-cpp-all-format-benchmarks.exe --benchmark_filter=person_write >> $env:GITHUB_STEP_SUMMARY
43-
echo '```' >> $env:GITHUB_STEP_SUMMARY
44-
echo '## Benchmarks for JSON' >> $env:GITHUB_STEP_SUMMARY
45-
echo '```' >> $env:GITHUB_STEP_SUMMARY
46-
.\build\benchmarks\json\Release\reflect-cpp-json-benchmarks.exe --benchmark_filter=person_read >> $env:GITHUB_STEP_SUMMARY
47-
.\build\benchmarks\json\Release\reflect-cpp-json-benchmarks.exe --benchmark_filter=canada >> $env:GITHUB_STEP_SUMMARY
48-
.\build\benchmarks\json\Release\reflect-cpp-json-benchmarks.exe --benchmark_filter=licenses >> $env:GITHUB_STEP_SUMMARY
49-
echo '```' >> $env:GITHUB_STEP_SUMMARY
51+
echo '# Benchmarks' >> $GITHUB_STEP_SUMMARY
52+
echo '## Benchmarks across different formats' >> $GITHUB_STEP_SUMMARY
53+
echo '```' >> $GITHUB_STEP_SUMMARY
54+
./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=canada_read >> $GITHUB_STEP_SUMMARY
55+
./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=canada_write >> $GITHUB_STEP_SUMMARY
56+
./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=licenses_read >> $GITHUB_STEP_SUMMARY
57+
./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=licenses_write >> $GITHUB_STEP_SUMMARY
58+
./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=person_read >> $GITHUB_STEP_SUMMARY
59+
./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=person_write >> $GITHUB_STEP_SUMMARY
60+
echo '```' >> $GITHUB_STEP_SUMMARY
61+
echo '## Benchmarks for JSON' >> $GITHUB_STEP_SUMMARY
62+
echo '```' >> $GITHUB_STEP_SUMMARY
63+
./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=person_read >> $GITHUB_STEP_SUMMARY
64+
./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=canada >> $GITHUB_STEP_SUMMARY
65+
./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=licenses >> $GITHUB_STEP_SUMMARY
66+
echo '```' >> $GITHUB_STEP_SUMMARY
5067

CMakeLists.txt

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@ cmake_minimum_required(VERSION 3.23)
33
option(REFLECTCPP_BUILD_SHARED "Build shared library" ${BUILD_SHARED_LIBS})
44
option(REFLECTCPP_INSTALL "Install reflect cpp" OFF)
55

6+
option(REFLECTCPP_ALL_FORMATS "Enable all supported formats" OFF)
67
option(REFLECTCPP_JSON "Enable JSON support" ON) # enabled by default
7-
option(REFLECTCPP_AVRO "Enable AVRO support" OFF)
8-
option(REFLECTCPP_BSON "Enable BSON support" OFF)
9-
option(REFLECTCPP_CAPNPROTO "Enable Cap’n Proto support" OFF)
10-
option(REFLECTCPP_CBOR "Enable CBOR support" OFF)
11-
option(REFLECTCPP_FLEXBUFFERS "Enable flexbuffers support" OFF)
12-
option(REFLECTCPP_MSGPACK "Enable msgpack support" OFF)
13-
option(REFLECTCPP_XML "Enable XML support" OFF)
14-
option(REFLECTCPP_TOML "Enable TOML support" OFF)
15-
option(REFLECTCPP_UBJSON "Enable UBJSON support" OFF)
16-
option(REFLECTCPP_YAML "Enable YAML support" OFF)
8+
option(REFLECTCPP_AVRO "Enable AVRO support" ${REFLECTCPP_ALL_FORMATS})
9+
option(REFLECTCPP_BSON "Enable BSON support" ${REFLECTCPP_ALL_FORMATS})
10+
option(REFLECTCPP_CAPNPROTO "Enable Cap’n Proto support" ${REFLECTCPP_ALL_FORMATS})
11+
option(REFLECTCPP_CBOR "Enable CBOR support" ${REFLECTCPP_ALL_FORMATS})
12+
option(REFLECTCPP_FLEXBUFFERS "Enable flexbuffers support" ${REFLECTCPP_ALL_FORMATS})
13+
option(REFLECTCPP_MSGPACK "Enable msgpack support" ${REFLECTCPP_ALL_FORMATS})
14+
option(REFLECTCPP_XML "Enable XML support" ${REFLECTCPP_ALL_FORMATS})
15+
option(REFLECTCPP_TOML "Enable TOML support" ${REFLECTCPP_ALL_FORMATS})
16+
option(REFLECTCPP_UBJSON "Enable UBJSON support" ${REFLECTCPP_ALL_FORMATS})
17+
option(REFLECTCPP_YAML "Enable YAML support" ${REFLECTCPP_ALL_FORMATS})
1718

1819
option(REFLECTCPP_BUILD_BENCHMARKS "Build benchmarks" OFF)
1920
option(REFLECTCPP_BUILD_TESTS "Build tests" OFF)
@@ -59,6 +60,12 @@ if (REFLECTCPP_BUILD_TESTS OR REFLECTCPP_BUILD_BENCHMARKS OR
5960
set(REFLECTCPP_USE_VCPKG_DEFAULT ON)
6061
endif()
6162

63+
if(REFLECTCPP_JSON OR REFLECTCPP_AVRO OR REFLECTCPP_CBOR OR REFLECTCPP_UBJSON)
64+
set(_REFLECTCPP_NEEDS_JSON_IMPL ON)
65+
else()
66+
set(_REFLECTCPP_NEEDS_JSON_IMPL OFF)
67+
endif()
68+
6269
option(REFLECTCPP_USE_VCPKG "Use VCPKG to download and build dependencies" ${REFLECTCPP_USE_VCPKG_DEFAULT})
6370

6471
if (REFLECTCPP_USE_VCPKG)
@@ -94,7 +101,7 @@ if (REFLECTCPP_USE_VCPKG)
94101
list(APPEND VCPKG_MANIFEST_FEATURES "flexbuffers")
95102
endif()
96103

97-
if (REFLECTCPP_JSON AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
104+
if (_REFLECTCPP_NEEDS_JSON_IMPL AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
98105
list(APPEND VCPKG_MANIFEST_FEATURES "json")
99106
endif()
100107

@@ -162,7 +169,7 @@ else ()
162169
target_link_libraries(reflectcpp PUBLIC ctre::ctre)
163170
endif ()
164171

165-
if (REFLECTCPP_JSON)
172+
if (_REFLECTCPP_NEEDS_JSON_IMPL)
166173
list(APPEND REFLECT_CPP_SOURCES
167174
src/reflectcpp_json.cpp
168175
)

benchmarks/all/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ add_executable(
66
reflect-cpp-all-format-benchmarks
77
${SOURCES}
88
)
9-
target_precompile_headers(reflect-cpp-all-format-benchmarks PRIVATE [["rfl.hpp"]] <iostream> <string> <functional> <gtest/gtest.h>)
9+
target_precompile_headers(reflect-cpp-all-format-benchmarks PRIVATE [["rfl.hpp"]] <iostream> <string> <functional>)
1010

1111
target_include_directories(reflect-cpp-all-format-benchmarks SYSTEM PRIVATE "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
1212
target_include_directories(reflect-cpp-all-format-benchmarks SYSTEM PRIVATE "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/tinycbor")

benchmarks/json/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ add_executable(
66
reflect-cpp-json-benchmarks
77
${SOURCES}
88
)
9-
target_precompile_headers(reflect-cpp-json-benchmarks PRIVATE [["rfl.hpp"]] <iostream> <string> <functional> <gtest/gtest.h>)
9+
target_precompile_headers(reflect-cpp-json-benchmarks PRIVATE [["rfl.hpp"]] <iostream> <string> <functional>)
1010

1111
target_include_directories(reflect-cpp-json-benchmarks SYSTEM PRIVATE "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
1212

reflectcpp-config.cmake.in

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ endif()
1818

1919
include(${CMAKE_CURRENT_LIST_DIR}/reflectcpp-exports.cmake)
2020

21-
if (REFLECTCPP_JSON AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
21+
if (NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
2222
find_dependency(ctre)
23+
endif()
24+
25+
if ((REFLECTCPP_JSON OR REFLECTCPP_AVRO OR REFLECTCPP_CBOR OR REFLECTCPP_UBJSON) AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES)
2326
find_dependency(yyjson)
2427
endif()
2528

0 commit comments

Comments
 (0)