@@ -280,15 +280,17 @@ if (REFLECTCPP_BSON OR REFLECTCPP_CHECK_HEADERS)
280280
281281 find_package (bson 1.25.1 CONFIG REQUIRED NAMES bson bson-1.0 )
282282
283- # The package and target names have changed in libbson v2
283+ # The package and target names have changed since v2
284284 # https://github.com/mongodb/mongo-c-driver/releases/tag/2.0.0
285- if ( TARGET bson::${linkage_type} )
286- target_link_libraries ( reflectcpp PUBLIC bson::${linkage_type} )
287- elseif ( TARGET mongo::bson_${linkage_type} )
288- target_link_libraries ( reflectcpp PUBLIC mongo::bson_${linkage_type} )
289- else ( )
290- message ( FATAL_ERROR "Could not find a suitable libbson target" )
285+ set (bson_lib bson::${linkage_type} )
286+ if ( NOT TARGET " ${bson_lib} " )
287+ set (bson_lib mongo::bson_${linkage_type} )
288+ if ( NOT TARGET " ${bson_lib} " )
289+ message ( FATAL_ERROR "Could not find a suitable libbson target" )
290+ endif ( )
291291 endif ()
292+
293+ target_link_libraries (reflectcpp PUBLIC "${bson_lib} " )
292294endif ()
293295
294296if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS)
@@ -316,22 +318,28 @@ if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS)
316318 include_directories (PUBLIC ${jsoncons_INCLUDE_DIRS} )
317319endif ()
318320
321+ set (arrow_lib Arrow::arrow_${linkage_type} )
319322if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS)
320- if (NOT TARGET Arrow::arrow_ ${linkage_type} )
323+ if (NOT TARGET " ${arrow_lib} " )
321324 find_package (Arrow CONFIG REQUIRED )
322325 endif ()
323326
324- target_link_libraries (reflectcpp PUBLIC Arrow::arrow_${linkage_type} )
327+ target_link_libraries (reflectcpp PUBLIC " ${arrow_lib} " )
325328endif ()
326329
327330if (REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_CHECK_HEADERS)
328331 list (APPEND REFLECT_CPP_SOURCES
329332 src/reflectcpp_flexbuf.cpp
330333 )
331- if (NOT TARGET flatbuffers::flatbuffers)
332- find_package (flatbuffers CONFIG REQUIRED )
333- endif ()
334- target_link_libraries (reflectcpp PUBLIC flatbuffers::flatbuffers )
334+
335+ find_package (flatbuffers CONFIG REQUIRED )
336+
337+ set (flatbuf_lib flatbuffers::flatbuffers)
338+ if (REFLECTCPP_BUILD_SHARED AND TARGET flatbuffers::flatbuffers_shared)
339+ set (flatbuf_lib flatbuffers::flatbuffers_shared)
340+ endif ()
341+
342+ target_link_libraries (reflectcpp PUBLIC "${flatbuf_lib} " )
335343endif ()
336344
337345if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS)
@@ -348,18 +356,19 @@ if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS)
348356 endif ()
349357endif ()
350358
359+ set (parquet_lib Parquet::parquet_${linkage_type} )
351360if (REFLECTCPP_PARQUET OR REFLECTCPP_CHECK_HEADERS)
352- if (NOT TARGET Arrow::arrow_ ${linkage_type} )
361+ if (NOT TARGET " ${arrow_lib} " )
353362 find_package (Arrow CONFIG REQUIRED )
354363 endif ()
355364
356- if (NOT TARGET Parquet::parquet_ ${linkage_type} )
365+ if (NOT TARGET " ${parquet_lib} " )
357366 find_package (Parquet CONFIG REQUIRED
358367 NAMES Parquet Arrow # Conan merges the Parquet package into Arrow
359368 )
360369 endif ()
361370
362- target_link_libraries (reflectcpp PUBLIC Arrow::arrow_${linkage_type} Parquet::parquet_${linkage_type} )
371+ target_link_libraries (reflectcpp PUBLIC " ${arrow_lib} " " ${parquet_lib} " )
363372endif ()
364373
365374if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS)
0 commit comments