add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-core\") set(KDECONNECT_PRIVATE_DBUS_ADDR unix:tmpdir=/tmp) if(WIN32) set(KDECONNECT_PRIVATE_DBUS_ADDR tcp:host=localhost,port=0) endif() set(KDECONNECT_PRIVATE_DBUS_NAME DBusKDEConnectOnly) configure_file(dbushelper.h.in ${CMAKE_CURRENT_BINARY_DIR}/dbushelper.h) add_subdirectory(backends/lan) add_subdirectory(backends/loopback) option(MDNS_ENABLED "Use MDNS for device discovery (under development)" OFF) if (MDNS_ENABLED) find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS DNSSD) endif() option(BLUETOOTH_ENABLED "Bluetooth support for kdeconnect" OFF) if(BLUETOOTH_ENABLED) find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Bluetooth) add_subdirectory(backends/bluetooth) endif() option(LOOPBACK_ENABLED "Loopback backend enabled" OFF) add_library(kdeconnectcore) target_sources(kdeconnectcore PRIVATE ${backends_kdeconnect_SRCS} backends/linkprovider.cpp backends/devicelink.cpp backends/pairinghandler.cpp kdeconnectplugin.cpp kdeconnectpluginconfig.cpp pluginloader.cpp kdeconnectconfig.cpp dbushelper.cpp networkpacket.cpp filetransferjob.cpp compositefiletransferjob.cpp daemon.cpp device.cpp sslhelper.cpp core_debug.cpp notificationserverinfo.cpp openconfig.cpp ) ecm_qt_declare_logging_category(kdeconnectcore HEADER kdeconnect_debug.h IDENTIFIER KDECONNECT_CORE CATEGORY_NAME kdeconnect.core DEFAULT_SEVERITY Warning EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (core)") target_include_directories(kdeconnectcore PUBLIC ${PROJECT_SOURCE_DIR}) find_package(OpenSSL REQUIRED COMPONENTS Crypto) target_link_libraries(kdeconnectcore PUBLIC Qt::Network KF${QT_MAJOR_VERSION}::CoreAddons KF${QT_MAJOR_VERSION}::KIOCore KF${QT_MAJOR_VERSION}::KIOGui OpenSSL::Crypto PRIVATE Qt::DBus KF${QT_MAJOR_VERSION}::I18n KF${QT_MAJOR_VERSION}::ConfigCore ) if(WIN32) target_link_libraries(kdeconnectcore PRIVATE ws2_32.lib) # winsock2 endif() if (BLUETOOTH_ENABLED) target_compile_definitions(kdeconnectcore PRIVATE -DKDECONNECT_BLUETOOTH) target_link_libraries(kdeconnectcore PRIVATE Qt${QT_MAJOR_VERSION}::Bluetooth) endif() if (LOOPBACK_ENABLED) target_compile_definitions(kdeconnectcore PRIVATE -DKDECONNECT_LOOPBACK) endif() if (MDNS_ENABLED) target_compile_definitions(kdeconnectcore PRIVATE -DKDECONNECT_MDNS) target_link_libraries(kdeconnectcore PRIVATE KF${QT_MAJOR_VERSION}::DNSSD) endif() set_target_properties(kdeconnectcore PROPERTIES VERSION ${KDECONNECT_VERSION} SOVERSION ${KDECONNECT_VERSION_MAJOR} ) generate_export_header(kdeconnectcore EXPORT_FILE_NAME kdeconnectcore_export.h BASE_NAME KDEConnectCore) install(TARGETS kdeconnectcore EXPORT kdeconnectLibraryTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)