# Smartbotic Database Client Library if(BUILD_SHARED_LIBS) add_library(smartbotic-db-client SHARED src/client.cpp $ ) set_target_properties(smartbotic-db-client PROPERTIES VERSION ${SMARTBOTIC_DB_VERSION} SOVERSION 2 ) else() add_library(smartbotic-db-client STATIC src/client.cpp ) endif() target_include_directories(smartbotic-db-client PUBLIC $ $ ) # Link dependencies target_link_libraries(smartbotic-db-client PUBLIC smartbotic_db_proto ) if(TARGET nlohmann_json::nlohmann_json) target_link_libraries(smartbotic-db-client PUBLIC nlohmann_json::nlohmann_json) else() target_include_directories(smartbotic-db-client PUBLIC ${NLOHMANN_JSON_INCLUDE_DIRS}) endif() if(TARGET spdlog::spdlog) target_link_libraries(smartbotic-db-client PUBLIC spdlog::spdlog) else() target_link_libraries(smartbotic-db-client PUBLIC ${SPDLOG_LIBRARIES}) target_include_directories(smartbotic-db-client PUBLIC ${SPDLOG_INCLUDE_DIRS}) endif() # Export alias add_library(smartbotic::db-client ALIAS smartbotic-db-client) # Installation (standalone/packaging only) if(SMARTBOTIC_DB_STANDALONE) include(GNUInstallDirs) install(TARGETS smartbotic-db-client LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(DIRECTORY include/smartbotic DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) endif()