mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 22:50:21 +00:00
Fixes linker settings for rocksdb for Debug and Release builds
This commit is contained in:
+15
-2
@@ -316,12 +316,25 @@ if (WITH_ROCKSDB)
|
|||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB)
|
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB)
|
||||||
# See https://github.com/facebook/rocksdb/issues/981.
|
# See https://github.com/facebook/rocksdb/issues/981.
|
||||||
if(TARGET RocksDB::rocksdb)
|
if(TARGET RocksDB::rocksdb)
|
||||||
target_link_libraries(IFCOPENSHELL_RocksDB INTERFACE RocksDB::rocksdb)
|
set(IFCOPENSHELL_ROCKSDB_IMPORTED_TARGET RocksDB::rocksdb)
|
||||||
elseif(TARGET RocksDB::rocksdb-shared)
|
elseif(TARGET RocksDB::rocksdb-shared)
|
||||||
target_link_libraries(IFCOPENSHELL_RocksDB INTERFACE RocksDB::rocksdb-shared)
|
set(IFCOPENSHELL_ROCKSDB_IMPORTED_TARGET RocksDB::rocksdb-shared)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "RocksDB found but neither RocksDB::rocksdb nor RocksDB::rocksdb-shared target exists")
|
message(FATAL_ERROR "RocksDB found but neither RocksDB::rocksdb nor RocksDB::rocksdb-shared target exists")
|
||||||
endif()
|
endif()
|
||||||
|
# Our win/build-deps.cmd builds RocksDB separately per Debug/Release config into the
|
||||||
|
# same install prefix, so the imported target only ever has DEBUG and RELEASE listed in
|
||||||
|
# IMPORTED_CONFIGURATIONS. On a multi-config generator (Visual Studio), CMake maps any
|
||||||
|
# unmatched build config to the *first* entry of that list, which happens to be DEBUG
|
||||||
|
# (RocksDBTargets-debug.cmake sorts before RocksDBTargets-release.cmake). Without an
|
||||||
|
# explicit mapping, RelWithDebInfo and MinSizeRel builds would end up linking the
|
||||||
|
# /MDd-flavored rocksdb_d.lib into an /MD (NDEBUG) binary, causing a CRT/runtime-library
|
||||||
|
# mismatch that depends on nothing but that alphabetical ordering.
|
||||||
|
set_target_properties(${IFCOPENSHELL_ROCKSDB_IMPORTED_TARGET} PROPERTIES
|
||||||
|
MAP_IMPORTED_CONFIG_RELWITHDEBINFO RELEASE
|
||||||
|
MAP_IMPORTED_CONFIG_MINSIZEREL RELEASE
|
||||||
|
)
|
||||||
|
target_link_libraries(IFCOPENSHELL_RocksDB INTERFACE ${IFCOPENSHELL_ROCKSDB_IMPORTED_TARGET})
|
||||||
|
|
||||||
if (WITH_ZSTD)
|
if (WITH_ZSTD)
|
||||||
# @todo do we actually need the zstd include dir or rather just pass
|
# @todo do we actually need the zstd include dir or rather just pass
|
||||||
|
|||||||
Reference in New Issue
Block a user