Skip to content

Commit 4a7d7ad

Browse files
committed
fix FlatBuffers's shared lib target name on Conan
and refactor
1 parent 576b9c7 commit 4a7d7ad

1 file changed

Lines changed: 25 additions & 16 deletions

File tree

CMakeLists.txt

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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}")
292294
endif ()
293295

294296
if (REFLECTCPP_CAPNPROTO OR REFLECTCPP_CHECK_HEADERS)
@@ -316,22 +318,28 @@ if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS)
316318
include_directories(PUBLIC ${jsoncons_INCLUDE_DIRS})
317319
endif ()
318320

321+
set(arrow_lib Arrow::arrow_${linkage_type})
319322
if (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}")
325328
endif ()
326329

327330
if (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}")
335343
endif ()
336344

337345
if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS)
@@ -348,18 +356,19 @@ if (REFLECTCPP_MSGPACK OR REFLECTCPP_CHECK_HEADERS)
348356
endif()
349357
endif ()
350358

359+
set(parquet_lib Parquet::parquet_${linkage_type})
351360
if (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}")
363372
endif ()
364373

365374
if (REFLECTCPP_TOML OR REFLECTCPP_CHECK_HEADERS)

0 commit comments

Comments
 (0)