Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

link to icu or sasl2 when appropriate for mongo #7227

Merged
merged 1 commit into from
Apr 26, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion plugins/mongo_db_plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,28 @@ if(BUILD_MONGO_DB_PLUGIN)
PRIVATE ${LIBMONGOCXX_STATIC_DEFINITIONS} ${LIBBSONCXX_STATIC_DEFINITIONS}
)

# We can't just use *_STATIC_LIBRARIES variables to link against because the static
# variants of these may try to static link against libraries we don't want (like a system
# libc/c++). But we need to know if mongo c driver was built with ICU or SASL2 support so
# that we can continue to link to those. This certainly is a bit on the fragile side but
# try to parse what is included in MONGOC_STATIC_LIBRARIES to see what we should link to
foreach(MONGO_S_LIB ${MONGOC_STATIC_LIBRARIES})
string(REGEX MATCH "libsasl2\\${CMAKE_SHARED_LIBRARY_SUFFIX}$" REGOUT ${MONGO_S_LIB})
if(REGOUT)
set(LINK_SASL "sasl2")
endif()

string(REGEX MATCH "libicuuc\\${CMAKE_SHARED_LIBRARY_SUFFIX}$" REGOUT ${MONGO_S_LIB})
if(REGOUT)
set(LINK_ICU "icuuc")
endif()
endforeach()

target_link_libraries(mongo_db_plugin
PUBLIC chain_plugin eosio_chain appbase
${LIBMONGOCXX_STATIC_LIBRARY_PATH} ${LIBBSONCXX_STATIC_LIBRARY_PATH}
${MONGOC_STATIC_LIBRARY} ${BSON_STATIC_LIBRARY}
resolv
resolv ${LINK_SASL} ${LINK_ICU}
)

else()
Expand Down