From 8fd81efaa731a695953104aab96ae8fd842c5502 Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Sat, 3 Jan 2026 17:17:17 +0600 Subject: [PATCH 1/7] fix: CMake package/target names for libbson and Apache Arrow --- CMakeLists.txt | 43 +++++++++++++++++++++++++------------- reflectcpp-config.cmake.in | 2 +- vcpkg.json | 1 + 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 193f9f47..5b75ad9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -275,10 +275,25 @@ if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_bson.cpp ) - if (NOT TARGET mongo::bson_static AND NOT TARGET mongo::bson_shared) - find_package(bson-1.0 CONFIG REQUIRED) - endif () - target_link_libraries(reflectcpp PUBLIC $,mongo::bson_static,mongo::bson_shared>) + + # vcpkg doesn't yet have libbson>=2, where the package and target names have changed + # https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.0 + if(REFLECTCPP_USE_VCPKG) + set(BSON_PACKAGE_NAME bson-1.0) + set(bson_tgt_name_prefix "mongo::bson_") + else() + set(BSON_PACKAGE_NAME bson) + set(bson_tgt_name_prefix "bson::") + endif() + + if(REFLECTCPP_BUILD_SHARED) + set(bson_tgt_linkage shared) + else() + set(bson_tgt_linkage static) + endif() + + find_package(${BSON_PACKAGE_NAME} 1.25.1...2 REQUIRED) + target_link_libraries(reflectcpp PUBLIC "${bson_tgt_name_prefix}${bson_tgt_linkage}") endif () if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) @@ -310,10 +325,10 @@ if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS) if (NOT TARGET Arrow) find_package(Arrow CONFIG REQUIRED) endif() - if (REFLECTCPP_USE_VCPKG) - target_link_libraries(reflectcpp PUBLIC "$,Arrow::arrow_static,Arrow::arrow_shared>") + if(REFLECTCPP_BUILD_SHARED) + target_link_libraries(reflectcpp PUBLIC Arrow::arrow_shared) else() - target_link_libraries(reflectcpp PUBLIC "arrow::arrow") + target_link_libraries(reflectcpp PUBLIC Arrow::arrow_static) endif() endif () @@ -341,14 +356,14 @@ if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) if (NOT TARGET Arrow) find_package(Arrow CONFIG REQUIRED) endif() - if (REFLECTCPP_USE_VCPKG) - if (NOT TARGET Parquet) - find_package(Parquet CONFIG REQUIRED) - endif() - target_link_libraries(reflectcpp PUBLIC "$,Arrow::arrow_static,Arrow::arrow_shared>") - target_link_libraries(reflectcpp PUBLIC "$,Parquet::parquet_static,Parquet::parquet_shared>") + if (NOT TARGET Parquet) + find_package(Parquet CONFIG REQUIRED) + endif() + + if(REFLECTCPP_BUILD_SHARED) + target_link_libraries(reflectcpp PUBLIC Arrow::arrow_shared Parquet::parquet_shared) else() - target_link_libraries(reflectcpp PUBLIC "arrow::arrow") + target_link_libraries(reflectcpp PUBLIC Arrow::arrow_static Parquet::parquet_static) endif() endif () diff --git a/reflectcpp-config.cmake.in b/reflectcpp-config.cmake.in index 128a89c7..044e4ec5 100644 --- a/reflectcpp-config.cmake.in +++ b/reflectcpp-config.cmake.in @@ -29,7 +29,7 @@ if ((REFLECTCPP_JSON OR REFLECTCPP_AVRO OR REFLECTCPP_CBOR OR REFLECTCPP_UBJSON) endif() if (REFLECTCPP_BSON) - find_dependency(bson-1.0) + find_dependency(@BSON_PACKAGE_NAME@ 1.25.1...2) endif () if (REFLECTCPP_CAPNPROTO) diff --git a/vcpkg.json b/vcpkg.json index d10605b8..c5e5e689 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -76,6 +76,7 @@ { "name": "arrow", "version>=": "21.0.0", + "default-features": false, "features": ["csv"] } ] From fb04e3c3f1b9a4c3f059f26744c17d68bd4fc10e Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Sat, 3 Jan 2026 19:21:26 +0600 Subject: [PATCH 2/7] fix: make requested changes --- CMakeLists.txt | 2 +- reflectcpp-config.cmake.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b75ad9c..4069fb53 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -292,7 +292,7 @@ if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) set(bson_tgt_linkage static) endif() - find_package(${BSON_PACKAGE_NAME} 1.25.1...2 REQUIRED) + find_package(${BSON_PACKAGE_NAME} 1.25.1 REQUIRED) target_link_libraries(reflectcpp PUBLIC "${bson_tgt_name_prefix}${bson_tgt_linkage}") endif () diff --git a/reflectcpp-config.cmake.in b/reflectcpp-config.cmake.in index 044e4ec5..d3fed882 100644 --- a/reflectcpp-config.cmake.in +++ b/reflectcpp-config.cmake.in @@ -29,7 +29,7 @@ if ((REFLECTCPP_JSON OR REFLECTCPP_AVRO OR REFLECTCPP_CBOR OR REFLECTCPP_UBJSON) endif() if (REFLECTCPP_BSON) - find_dependency(@BSON_PACKAGE_NAME@ 1.25.1...2) + find_dependency(@BSON_PACKAGE_NAME@ 1.25.1) endif () if (REFLECTCPP_CAPNPROTO) From f8a50aa8111c63d78fb0f6ca4dcc70cc6fa9b627 Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Sat, 3 Jan 2026 21:52:58 +0600 Subject: [PATCH 3/7] fix for msgpack-c as well --- CMakeLists.txt | 8 +++++--- vcpkg.json | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4069fb53..fc71e492 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -346,10 +346,12 @@ if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_msgpack.cpp ) - if (NOT TARGET msgpack-c) - find_package(msgpack-c CONFIG REQUIRED NAMES msgpack msgpack-c msgpackc) + find_package(msgpack-c CONFIG REQUIRED NAMES msgpack msgpack-c msgpackc) + if(NOT REFLECTCPP_BUILD_SHARED AND TARGET msgpack-c-static) + target_link_libraries(reflectcpp PUBLIC msgpack-c-static) + else() + target_link_libraries(reflectcpp PUBLIC msgpack-c) endif() - target_link_libraries(reflectcpp PUBLIC $,msgpack-c,$,msgpackc,msgpack-c>>) endif () if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) diff --git a/vcpkg.json b/vcpkg.json index c5e5e689..d10605b8 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -76,7 +76,6 @@ { "name": "arrow", "version>=": "21.0.0", - "default-features": false, "features": ["csv"] } ] From c257d1fc296c105fd7a9c729bf3f4dfc2ea7fb31 Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Tue, 6 Jan 2026 21:47:38 +0600 Subject: [PATCH 4/7] attempt to fix the pipeline's Linux Conan build --- conanfile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conanfile.py b/conanfile.py index a085b7b6..b75ff71b 100644 --- a/conanfile.py +++ b/conanfile.py @@ -81,6 +81,8 @@ def requirements(self): self.requires("jsoncons/0.176.0", transitive_headers=True) if self.options.with_csv or self.options.with_parquet: self.requires("arrow/21.0.0", transitive_headers=True) + self.default_options["arrow/*:with_csv"] = self.options.with_csv + self.default_options["arrow/*:with_parquet"] = self.options.with_parquet if self.options.with_flatbuffers: self.requires("flatbuffers/24.3.25", transitive_headers=True) if self.options.with_msgpack: From cfc720fc2c2bf4d8694aa2db79d0826416aa9eb8 Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Thu, 8 Jan 2026 22:12:44 +0600 Subject: [PATCH 5/7] another attempt to fix the Conan build (& some fixes/improvs) --- CMakeLists.txt | 50 ++++++++++++++++++-------------------- conanfile.py | 1 - reflectcpp-config.cmake.in | 4 +-- 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc71e492..dc0048f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,8 +150,10 @@ endif() if (REFLECTCPP_BUILD_SHARED) add_library(reflectcpp SHARED) set_target_properties(reflectcpp PROPERTIES SOVERSION ${PROJECT_VERSION}) + set(linkage_type shared) else() add_library(reflectcpp STATIC) + set(linkage_type static) endif() add_library(reflectcpp::reflectcpp ALIAS reflectcpp) @@ -280,20 +282,14 @@ if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) # https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.0 if(REFLECTCPP_USE_VCPKG) set(BSON_PACKAGE_NAME bson-1.0) - set(bson_tgt_name_prefix "mongo::bson_") + set(bson_lib mongo::bson_${linkage_type}) else() set(BSON_PACKAGE_NAME bson) - set(bson_tgt_name_prefix "bson::") + set(bson_lib bson::${linkage_type}) endif() - if(REFLECTCPP_BUILD_SHARED) - set(bson_tgt_linkage shared) - else() - set(bson_tgt_linkage static) - endif() - - find_package(${BSON_PACKAGE_NAME} 1.25.1 REQUIRED) - target_link_libraries(reflectcpp PUBLIC "${bson_tgt_name_prefix}${bson_tgt_linkage}") + find_package(${BSON_PACKAGE_NAME} 1.25.1 CONFIG REQUIRED) + target_link_libraries(reflectcpp PUBLIC "${bson_lib}") endif () if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) @@ -322,14 +318,12 @@ if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) endif () if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS) - if (NOT TARGET Arrow) + set(arrow_lib Arrow::arrow_${linkage_type}) + if (NOT TARGET "${arrow_lib}") find_package(Arrow CONFIG REQUIRED) endif() - if(REFLECTCPP_BUILD_SHARED) - target_link_libraries(reflectcpp PUBLIC Arrow::arrow_shared) - else() - target_link_libraries(reflectcpp PUBLIC Arrow::arrow_static) - endif() + + target_link_libraries(reflectcpp PUBLIC "${arrow_lib}") endif () if (REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS) @@ -346,27 +340,29 @@ if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_msgpack.cpp ) - find_package(msgpack-c CONFIG REQUIRED NAMES msgpack msgpack-c msgpackc) + find_package(msgpack-c CONFIG REQUIRED NAMES msgpack-c msgpack msgpackc) if(NOT REFLECTCPP_BUILD_SHARED AND TARGET msgpack-c-static) - target_link_libraries(reflectcpp PUBLIC msgpack-c-static) + set(msgpack_lib msgpack-c-static) else() - target_link_libraries(reflectcpp PUBLIC msgpack-c) + set(msgpack_lib msgpack-c) endif() + target_link_libraries(reflectcpp PUBLIC "${msgpack_lib}") endif () if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) - if (NOT TARGET Arrow) + set(arrow_lib Arrow::arrow_${linkage_type}) + if (NOT TARGET "${arrow_lib}") find_package(Arrow CONFIG REQUIRED) endif() - if (NOT TARGET Parquet) - find_package(Parquet CONFIG REQUIRED) - endif() - if(REFLECTCPP_BUILD_SHARED) - target_link_libraries(reflectcpp PUBLIC Arrow::arrow_shared Parquet::parquet_shared) - else() - target_link_libraries(reflectcpp PUBLIC Arrow::arrow_static Parquet::parquet_static) + set(parquet_lib Parquet::parquet_${linkage_type}) + if (NOT TARGET "${parquet_lib}") + find_package(Parquet CONFIG REQUIRED + NAMES Parquet Arrow # Conan combines the Parquet package into Arrow + ) endif() + + target_link_libraries(reflectcpp PUBLIC "${arrow_lib}" "${parquet_lib}") endif () if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS) diff --git a/conanfile.py b/conanfile.py index b75ff71b..a6b52ada 100644 --- a/conanfile.py +++ b/conanfile.py @@ -82,7 +82,6 @@ def requirements(self): if self.options.with_csv or self.options.with_parquet: self.requires("arrow/21.0.0", transitive_headers=True) self.default_options["arrow/*:with_csv"] = self.options.with_csv - self.default_options["arrow/*:with_parquet"] = self.options.with_parquet if self.options.with_flatbuffers: self.requires("flatbuffers/24.3.25", transitive_headers=True) if self.options.with_msgpack: diff --git a/reflectcpp-config.cmake.in b/reflectcpp-config.cmake.in index d3fed882..8a5ebacb 100644 --- a/reflectcpp-config.cmake.in +++ b/reflectcpp-config.cmake.in @@ -49,12 +49,12 @@ if (REFLECTCPP_FLEXBUFFERS) endif () if (REFLECTCPP_MSGPACK) - find_dependency(msgpack-c) + find_dependency(msgpack-c NAMES msgpack-c msgpack msgpackc) endif() if (REFLECTCPP_PARQUET) find_dependency(Arrow) - find_dependency(Parquet) + find_dependency(Parquet NAMES Parquet Arrow) endif() if (REFLECTCPP_TOML) From 576b9c78d80ca1942d5df2441034e4ead78895f4 Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Thu, 8 Jan 2026 23:52:59 +0600 Subject: [PATCH 6/7] improve use the `NAMES` kwarg with `find_package` to handle varying package names more robustly --- CMakeLists.txt | 39 ++++++++++++++++++-------------------- reflectcpp-config.cmake.in | 2 +- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dc0048f8..2a9a463f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -278,18 +278,17 @@ if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) src/reflectcpp_bson.cpp ) - # vcpkg doesn't yet have libbson>=2, where the package and target names have changed + find_package(bson 1.25.1 CONFIG REQUIRED NAMES bson bson-1.0) + + # The package and target names have changed in libbson v2 # https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.0 - if(REFLECTCPP_USE_VCPKG) - set(BSON_PACKAGE_NAME bson-1.0) - set(bson_lib mongo::bson_${linkage_type}) + if(TARGET bson::${linkage_type}) + target_link_libraries(reflectcpp PUBLIC bson::${linkage_type}) + elseif(TARGET mongo::bson_${linkage_type}) + target_link_libraries(reflectcpp PUBLIC mongo::bson_${linkage_type}) else() - set(BSON_PACKAGE_NAME bson) - set(bson_lib bson::${linkage_type}) + message(FATAL_ERROR "Could not find a suitable libbson target") endif() - - find_package(${BSON_PACKAGE_NAME} 1.25.1 CONFIG REQUIRED) - target_link_libraries(reflectcpp PUBLIC "${bson_lib}") endif () if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) @@ -318,12 +317,11 @@ if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) endif () if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS) - set(arrow_lib Arrow::arrow_${linkage_type}) - if (NOT TARGET "${arrow_lib}") + if (NOT TARGET Arrow::arrow_${linkage_type}) find_package(Arrow CONFIG REQUIRED) endif() - target_link_libraries(reflectcpp PUBLIC "${arrow_lib}") + target_link_libraries(reflectcpp PUBLIC Arrow::arrow_${linkage_type}) endif () if (REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS) @@ -340,29 +338,28 @@ if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_msgpack.cpp ) + find_package(msgpack-c CONFIG REQUIRED NAMES msgpack-c msgpack msgpackc) + if(NOT REFLECTCPP_BUILD_SHARED AND TARGET msgpack-c-static) - set(msgpack_lib msgpack-c-static) + target_link_libraries(reflectcpp PUBLIC msgpack-c-static) else() - set(msgpack_lib msgpack-c) + target_link_libraries(reflectcpp PUBLIC msgpack-c) endif() - target_link_libraries(reflectcpp PUBLIC "${msgpack_lib}") endif () if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) - set(arrow_lib Arrow::arrow_${linkage_type}) - if (NOT TARGET "${arrow_lib}") + if (NOT TARGET Arrow::arrow_${linkage_type}) find_package(Arrow CONFIG REQUIRED) endif() - set(parquet_lib Parquet::parquet_${linkage_type}) - if (NOT TARGET "${parquet_lib}") + if (NOT TARGET Parquet::parquet_${linkage_type}) find_package(Parquet CONFIG REQUIRED - NAMES Parquet Arrow # Conan combines the Parquet package into Arrow + NAMES Parquet Arrow # Conan merges the Parquet package into Arrow ) endif() - target_link_libraries(reflectcpp PUBLIC "${arrow_lib}" "${parquet_lib}") + target_link_libraries(reflectcpp PUBLIC Arrow::arrow_${linkage_type} Parquet::parquet_${linkage_type}) endif () if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS) diff --git a/reflectcpp-config.cmake.in b/reflectcpp-config.cmake.in index 8a5ebacb..a5030a02 100644 --- a/reflectcpp-config.cmake.in +++ b/reflectcpp-config.cmake.in @@ -29,7 +29,7 @@ if ((REFLECTCPP_JSON OR REFLECTCPP_AVRO OR REFLECTCPP_CBOR OR REFLECTCPP_UBJSON) endif() if (REFLECTCPP_BSON) - find_dependency(@BSON_PACKAGE_NAME@ 1.25.1) + find_dependency(bson 1.25.1 NAMES bson bson-1.0) endif () if (REFLECTCPP_CAPNPROTO) From 4a7d7ad4cd6af97b4bdfadf924886cf5b60b602e Mon Sep 17 00:00:00 2001 From: Tahmid Khan <60913202+ta7mid@users.noreply.github.com> Date: Fri, 9 Jan 2026 00:05:04 +0600 Subject: [PATCH 7/7] fix FlatBuffers's shared lib target name on Conan and refactor --- CMakeLists.txt | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a9a463f..14760a22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,15 +280,17 @@ if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) find_package(bson 1.25.1 CONFIG REQUIRED NAMES bson bson-1.0) - # The package and target names have changed in libbson v2 + # The package and target names have changed since v2 # https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.0 - if(TARGET bson::${linkage_type}) - target_link_libraries(reflectcpp PUBLIC bson::${linkage_type}) - elseif(TARGET mongo::bson_${linkage_type}) - target_link_libraries(reflectcpp PUBLIC mongo::bson_${linkage_type}) - else() - message(FATAL_ERROR "Could not find a suitable libbson target") + set(bson_lib bson::${linkage_type}) + if(NOT TARGET "${bson_lib}") + set(bson_lib mongo::bson_${linkage_type}) + if(NOT TARGET "${bson_lib}") + message(FATAL_ERROR "Could not find a suitable libbson target") + endif() endif() + + target_link_libraries(reflectcpp PUBLIC "${bson_lib}") endif () if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) @@ -316,22 +318,28 @@ if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) include_directories(PUBLIC ${jsoncons_INCLUDE_DIRS}) endif () +set(arrow_lib Arrow::arrow_${linkage_type}) if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS) - if (NOT TARGET Arrow::arrow_${linkage_type}) + if (NOT TARGET "${arrow_lib}") find_package(Arrow CONFIG REQUIRED) endif() - target_link_libraries(reflectcpp PUBLIC Arrow::arrow_${linkage_type}) + target_link_libraries(reflectcpp PUBLIC "${arrow_lib}") endif () if (REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_flexbuf.cpp ) - if (NOT TARGET flatbuffers::flatbuffers) - find_package(flatbuffers CONFIG REQUIRED) - endif () - target_link_libraries(reflectcpp PUBLIC flatbuffers::flatbuffers) + + find_package(flatbuffers CONFIG REQUIRED) + + set(flatbuf_lib flatbuffers::flatbuffers) + if(REFLECTCPP_BUILD_SHARED AND TARGET flatbuffers::flatbuffers_shared) + set(flatbuf_lib flatbuffers::flatbuffers_shared) + endif() + + target_link_libraries(reflectcpp PUBLIC "${flatbuf_lib}") endif () if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) @@ -348,18 +356,19 @@ if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) endif() endif () +set(parquet_lib Parquet::parquet_${linkage_type}) if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) - if (NOT TARGET Arrow::arrow_${linkage_type}) + if (NOT TARGET "${arrow_lib}") find_package(Arrow CONFIG REQUIRED) endif() - if (NOT TARGET Parquet::parquet_${linkage_type}) + if (NOT TARGET "${parquet_lib}") find_package(Parquet CONFIG REQUIRED NAMES Parquet Arrow # Conan merges the Parquet package into Arrow ) endif() - target_link_libraries(reflectcpp PUBLIC Arrow::arrow_${linkage_type} Parquet::parquet_${linkage_type}) + target_link_libraries(reflectcpp PUBLIC "${arrow_lib}" "${parquet_lib}") endif () if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS)