9a49f002b7
KDNSSD only works with Avahi (so, only on Linux) while mdns.h is a header-only library [1] that implements mdns from scratch and should work on all platforms. [1] https://github.com/mjansson/mdns
95 lines
2.7 KiB
CMake
95 lines
2.7 KiB
CMake
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)
|
|
|
|
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)
|
|
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)
|