diff --git a/CMakeLists.txt b/CMakeLists.txt index 270f5c28..4ba01274 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,10 +56,10 @@ if(REFLECTCPP_BUILD_BENCHMARKS) set(REFLECTCPP_YAML ON CACHE BOOL "" FORCE) endif() -if (REFLECTCPP_BUILD_TESTS OR REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_CHECK_HEADERS OR +if(REFLECTCPP_BUILD_TESTS OR REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_CHECK_HEADERS OR (REFLECTCPP_JSON AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) OR REFLECTCPP_AVRO OR REFLECTCPP_BSON OR REFLECTCPP_CAPNPROTO OR REFLECTCPP_CBOR OR REFLECTCPP_CSV OR - REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_MSGPACK OR REFLECTCPP_PARQUET OR REFLECTCPP_XML OR + REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_MSGPACK OR REFLECTCPP_PARQUET OR REFLECTCPP_XML OR REFLECTCPP_TOML OR REFLECTCPP_UBJSON OR REFLECTCPP_YAML) # enable vcpkg per default if features other than JSON are required set(REFLECTCPP_USE_VCPKG_DEFAULT ON) @@ -73,93 +73,95 @@ endif() option(REFLECTCPP_USE_VCPKG "Use VCPKG to download and build dependencies" ${REFLECTCPP_USE_VCPKG_DEFAULT}) -if (REFLECTCPP_USE_VCPKG) - if (REFLECTCPP_AVRO OR REFLECTCPP_CHECK_HEADERS) +if(REFLECTCPP_USE_VCPKG) + if(REFLECTCPP_AVRO OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "avro") endif() - - if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "bson") endif() - - if (REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "benchmarks") endif() - if (REFLECTCPP_BUILD_TESTS OR REFLECTCPP_CHECK_HEADERS) + if(REFLECTCPP_BUILD_TESTS OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "tests") endif() - - if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "capnproto") endif() - - if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "cbor") endif() - - if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "csv") endif() - - if (NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) + + if(NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) list(APPEND VCPKG_MANIFEST_FEATURES "ctre") endif() - - if (REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "flexbuffers") endif() - - if (_REFLECTCPP_NEEDS_JSON_IMPL AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) + + if(_REFLECTCPP_NEEDS_JSON_IMPL AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) list(APPEND VCPKG_MANIFEST_FEATURES "json") endif() - - if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "msgpack") endif() - - if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "parquet") endif() - - if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "toml") endif() - - if (REFLECTCPP_UBJSON OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_UBJSON OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "ubjson") endif() - if (REFLECTCPP_XML OR REFLECTCPP_CHECK_HEADERS) + if(REFLECTCPP_XML OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "xml") endif() - - if (REFLECTCPP_YAML OR REFLECTCPP_CHECK_HEADERS) + + if(REFLECTCPP_YAML OR REFLECTCPP_CHECK_HEADERS) list(APPEND VCPKG_MANIFEST_FEATURES "yaml") endif() - + set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING "Vcpkg toolchain file") -endif () +endif() project(reflectcpp VERSION 0.23.0 LANGUAGES CXX) find_package(ament_cmake QUIET) -if (PROJECT_IS_TOP_LEVEL) +if(PROJECT_IS_TOP_LEVEL) set(REFLECTCPP_INSTALL ON) endif() -if (REFLECTCPP_BUILD_SHARED) +if(REFLECTCPP_BUILD_SHARED) add_library(reflectcpp SHARED) set_target_properties(reflectcpp PROPERTIES SOVERSION ${PROJECT_VERSION}) + set(preferred_lib_type shared) else() add_library(reflectcpp STATIC) + set(preferred_lib_type static) endif() add_library(reflectcpp::reflectcpp ALIAS reflectcpp) -if (MSVC) - target_compile_options(reflectcpp PRIVATE +if(MSVC) + target_compile_options(reflectcpp PRIVATE $<$: -Wall > @@ -184,9 +186,9 @@ endif() if(REFLECTCPP_BUILD_SHARED AND REFLECTCPP_USE_BUNDLED_DEPENDENCIES AND _REFLECTCPP_NEEDS_JSON_IMPL) target_compile_definitions(reflectcpp - PRIVATE - YYJSON_EXPORTS - INTERFACE + PRIVATE + YYJSON_EXPORTS + INTERFACE YYJSON_IMPORTS ) endif() @@ -208,22 +210,22 @@ target_include_directories( $ $) -if (REFLECTCPP_USE_BUNDLED_DEPENDENCIES) +if(REFLECTCPP_USE_BUNDLED_DEPENDENCIES) target_include_directories( reflectcpp PUBLIC $) -else () - if (NOT TARGET ctre::ctre) +else() + if(NOT TARGET ctre::ctre) find_package(ctre CONFIG REQUIRED) - endif () + endif() target_link_libraries(reflectcpp PUBLIC ctre::ctre) -endif () +endif() -if (_REFLECTCPP_NEEDS_JSON_IMPL) +if(_REFLECTCPP_NEEDS_JSON_IMPL) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_json.cpp ) - if (REFLECTCPP_USE_BUNDLED_DEPENDENCIES) + if(REFLECTCPP_USE_BUNDLED_DEPENDENCIES) list(APPEND REFLECT_CPP_SOURCES src/yyjson.c ) @@ -232,191 +234,235 @@ if (_REFLECTCPP_NEEDS_JSON_IMPL) target_include_directories( reflectcpp PUBLIC $) - else () - if (NOT TARGET yyjson::yyjson) + else() + if(NOT TARGET yyjson::yyjson) find_package(yyjson CONFIG REQUIRED) - endif () + endif() target_link_libraries(reflectcpp PUBLIC yyjson::yyjson) - endif () -endif () + endif() +endif() -if (REFLECTCPP_AVRO OR REFLECTCPP_CHECK_HEADERS) +if(REFLECTCPP_AVRO OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_avro.cpp ) find_package(jansson CONFIG REQUIRED) - if (REFLECTCPP_USE_VCPKG) + if(REFLECTCPP_USE_VCPKG) target_include_directories(reflectcpp SYSTEM PRIVATE "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") - if (MSVC) + if(MSVC) set(_AVRO_STATIC_LIB "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/avro${CMAKE_STATIC_LIBRARY_SUFFIX}") if(REFLECTCPP_BUILD_SHARED) message(STATUS "With whole archive ${_AVRO_STATIC_LIB}") - target_link_libraries(reflectcpp - PUBLIC - $ - "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/snappy${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/lzma${CMAKE_STATIC_LIBRARY_SUFFIX}" + target_link_libraries(reflectcpp + PUBLIC + $ + "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/snappy${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/lzma${CMAKE_STATIC_LIBRARY_SUFFIX}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/jansson${CMAKE_STATIC_LIBRARY_SUFFIX}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/zlib${CMAKE_STATIC_LIBRARY_SUFFIX}" ) else() target_link_libraries(reflectcpp PUBLIC "${_AVRO_STATIC_LIB}") endif() - else () + else() target_link_libraries(reflectcpp PRIVATE "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/libavro${CMAKE_STATIC_LIBRARY_SUFFIX}") - endif () - else () + endif() + else() find_package(PkgConfig REQUIRED) pkg_check_modules(avro REQUIRED IMPORTED_TARGET avro-c) target_link_libraries(reflectcpp PUBLIC PkgConfig::avro) - endif () + endif() target_link_libraries(reflectcpp PRIVATE jansson::jansson) -endif () +endif() -if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS) +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>) -endif () -if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) + # The package and target names have changed since v2: https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.0 + # bson-1.0 is for compatibility with older versions + find_package(bson 1.25.1 CONFIG REQUIRED NAMES bson bson-1.0) + + set(bson_lib bson::${preferred_lib_type}) + if(NOT TARGET "${bson_lib}") + # fallback to old target name + set(bson_lib mongo::bson_${preferred_lib_type}) + endif() + + target_link_libraries(reflectcpp PUBLIC "${bson_lib}") +endif() + +if(REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_capnproto.cpp ) - if (NOT TARGET CapnProto) + if(NOT TARGET CapnProto) find_package(CapnProto CONFIG REQUIRED) - endif () - set(CAPNPC_LIB CapnProto::capnpc) - if (NOT TARGET CapnProto::capnpc) - # in some old versions, there is no alias target CapnProto::capnpc, fallback to capnc - set(CAPNPC_LIB capnpc) endif() - target_link_libraries(reflectcpp PUBLIC CapnProto::kj CapnProto::capnp ${CAPNPC_LIB} CapnProto::kj-gzip) -endif () + set(capnpc_lib CapnProto::capnpc) + if(NOT TARGET CapnProto::capnpc) + # in some old versions, there is no alias target CapnProto::capnpc, fallback to capnc + set(capnpc_lib capnpc) + endif() + target_link_libraries(reflectcpp PUBLIC CapnProto::kj CapnProto::capnp ${capnpc_lib} CapnProto::kj-gzip) +endif() -if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) +if(REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_cbor.cpp ) - if (NOT TARGET jsoncons) + if(NOT TARGET jsoncons) find_package(jsoncons CONFIG REQUIRED) endif() include_directories(PUBLIC ${jsoncons_INCLUDE_DIRS}) -endif () +endif() -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_CSV OR REFLECTCPP_CHECK_HEADERS) + find_package(Arrow CONFIG REQUIRED) + + if(ARROW_BUILD_STATIC AND ARROW_BUILD_SHARED) + set(arrow_lib Arrow::arrow_${preferred_lib_type}) + elseif(ARROW_BUILD_STATIC) + set(arrow_lib Arrow::arrow_static) else() - target_link_libraries(reflectcpp PUBLIC "arrow::arrow") + set(arrow_lib Arrow::arrow_shared) endif() -endif () -if (REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS) + 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) -endif () -if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS) + find_package(flatbuffers CONFIG REQUIRED) + + if(REFLECTCPP_BUILD_SHARED AND TARGET flatbuffers::flatbuffers_shared) + set(flatbuf_lib flatbuffers::flatbuffers_shared) + else() + set(flatbuf_lib flatbuffers::flatbuffers) + endif() + + target_link_libraries(reflectcpp PUBLIC "${flatbuf_lib}") +endif() + +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-c msgpack msgpackc) + + if(NOT REFLECTCPP_BUILD_SHARED AND TARGET msgpack-c-static) + set(msgpack_lib msgpack-c-static) + else() + set(msgpack_lib msgpack-c) endif() - target_link_libraries(reflectcpp PUBLIC $,msgpack-c,$,msgpackc,msgpack-c>>) -endif () -if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) - if (NOT TARGET Arrow) + target_link_libraries(reflectcpp PUBLIC "${msgpack_lib}") +endif() + +if(REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS) + if(NOT TARGET "${arrow_lib}") find_package(Arrow CONFIG REQUIRED) - endif() - if (REFLECTCPP_USE_VCPKG) - if (NOT TARGET Parquet) - find_package(Parquet CONFIG REQUIRED) + + if(ARROW_BUILD_STATIC AND ARROW_BUILD_SHARED) + set(arrow_lib Arrow::arrow_${preferred_lib_type}) + elseif(ARROW_BUILD_STATIC) + set(arrow_lib Arrow::arrow_static) + else() + set(arrow_lib Arrow::arrow_shared) endif() - target_link_libraries(reflectcpp PUBLIC "$,Arrow::arrow_static,Arrow::arrow_shared>") - target_link_libraries(reflectcpp PUBLIC "$,Parquet::parquet_static,Parquet::parquet_shared>") + endif() + + find_package(Parquet CONFIG REQUIRED + NAMES Parquet Arrow # Conan merges the Parquet package into Arrow + ) + + # Dump all imported targets for debugging + set(msg "Imported targets:\n") + get_property(imported_targets DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" PROPERTY IMPORTED_TARGETS) + foreach(target IN ITEMS ${imported_targets}) + string(APPEND msg " - ${target}\n") + endforeach() + message(STATUS "${msg}") + + if(ARROW_BUILD_STATIC AND ARROW_BUILD_SHARED) + set(parquet_lib Parquet::parquet_${preferred_lib_type}) + elseif(ARROW_BUILD_STATIC) + set(parquet_lib Parquet::parquet_static) else() - target_link_libraries(reflectcpp PUBLIC "arrow::arrow") + set(parquet_lib Parquet::parquet_shared) endif() -endif () -if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS) + target_link_libraries(reflectcpp PUBLIC "${arrow_lib}" "${parquet_lib}") +endif() + +if(REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_toml.cpp ) - if (NOT TARGET tomlplusplus::tomlplusplus) + if(NOT TARGET tomlplusplus::tomlplusplus) find_package(tomlplusplus) endif() target_link_libraries(reflectcpp PUBLIC tomlplusplus::tomlplusplus) endif() -if (REFLECTCPP_UBJSON OR REFLECTCPP_CHECK_HEADERS) +if(REFLECTCPP_UBJSON OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_ubjson.cpp ) - if (NOT TARGET jsoncons) + if(NOT TARGET jsoncons) find_package(jsoncons CONFIG REQUIRED) endif() include_directories(PUBLIC ${jsoncons_INCLUDE_DIRS}) -endif () +endif() -if (REFLECTCPP_XML OR REFLECTCPP_CHECK_HEADERS) +if(REFLECTCPP_XML OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_xml.cpp ) - if (NOT TARGET pugixml::pugixml) + if(NOT TARGET pugixml::pugixml) find_package(pugixml CONFIG REQUIRED) - endif () + endif() target_link_libraries(reflectcpp PUBLIC pugixml::pugixml) -endif () +endif() -if (REFLECTCPP_YAML OR REFLECTCPP_CHECK_HEADERS) +if(REFLECTCPP_YAML OR REFLECTCPP_CHECK_HEADERS) list(APPEND REFLECT_CPP_SOURCES src/reflectcpp_yaml.cpp ) - if (NOT TARGET yaml-cpp::yaml-cpp) + if(NOT TARGET yaml-cpp::yaml-cpp) find_package(yaml-cpp CONFIG REQUIRED) - endif () + endif() target_link_libraries(reflectcpp PUBLIC yaml-cpp::yaml-cpp) -endif () +endif() set_target_properties(reflectcpp PROPERTIES LINKER_LANGUAGE CXX) target_sources(reflectcpp PRIVATE ${REFLECT_CPP_SOURCES}) target_precompile_headers(reflectcpp PRIVATE [["rfl.hpp"]] ) -if (REFLECTCPP_BUILD_TESTS) +if(REFLECTCPP_BUILD_TESTS) add_library(reflectcpp_tests_crt INTERFACE) target_link_libraries(reflectcpp_tests_crt INTERFACE reflectcpp GTest::gtest_main) enable_testing() find_package(GTest CONFIG REQUIRED) add_subdirectory(tests) -endif () +endif() -if (REFLECTCPP_BUILD_BENCHMARKS) - if (NOT TARGET benchmark::benchmark) +if(REFLECTCPP_BUILD_BENCHMARKS) + if(NOT TARGET benchmark::benchmark) find_package(benchmark CONFIG REQUIRED) - endif () - if (NOT TARGET simdjson::simdjson) + endif() + if(NOT TARGET simdjson::simdjson) find_package(simdjson CONFIG REQUIRED) - endif () + endif() target_link_libraries(reflectcpp PUBLIC benchmark::benchmark simdjson::simdjson) add_subdirectory(benchmarks) -endif () +endif() if(REFLECTCPP_CHECK_HEADERS) file(GLOB_RECURSE PROJECT_HEADERS "include/*.hpp") @@ -435,18 +481,18 @@ if(REFLECTCPP_CHECK_HEADERS) ) add_library(check_header_${HEADER_NAME} "${TEST_SOURCE_FILE}") - + target_include_directories(check_header_${HEADER_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${ADDITIONAL_INCLUDE_DIRS} ) - + add_custom_target(check_${HEADER_NAME} ALL DEPENDS check_header_${HEADER_NAME}) endif() endforeach() endif() -if (REFLECTCPP_INSTALL) +if(REFLECTCPP_INSTALL) include(GNUInstallDirs) include(CMakePackageConfigHelpers) @@ -487,7 +533,7 @@ if (REFLECTCPP_INSTALL) DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/reflectcpp NAMESPACE reflectcpp:: ) -endif () +endif() # Set general package information set(CPACK_PACKAGE_NAME "reflectcpp") @@ -517,7 +563,6 @@ set(CPACK_RPM_PACKAGE_REQUIRES "") include(CPack) -if (ament_cmake_FOUND) +if(ament_cmake_FOUND) ament_package() endif() - diff --git a/conanfile.py b/conanfile.py index a085b7b6..a6b52ada 100644 --- a/conanfile.py +++ b/conanfile.py @@ -81,6 +81,7 @@ 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 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 128a89c7..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-1.0) + find_dependency(bson 1.25.1 NAMES bson bson-1.0) endif () if (REFLECTCPP_CAPNPROTO) @@ -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)