f740a8bda8
This makes it easier to read, because we do not have to handle a list of files that get added to the targets. In other KDE projects, we also prefer the target centric approach. In case one wants to reuse the same category in multiple places, it would be best to create a small static lib. But for now, this is not needed.
96 lines
2.8 KiB
CMake
96 lines
2.8 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)
|
|
if (MDNS_ENABLED)
|
|
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS DNSSD)
|
|
endif()
|
|
|
|
option(BLUETOOTH_ENABLED "Bluetooth support for kdeconnect" OFF)
|
|
if(BLUETOOTH_ENABLED)
|
|
find_package(Qt5 ${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
|
|
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})
|
|
|
|
target_link_libraries(kdeconnectcore
|
|
PUBLIC
|
|
Qt${QT_MAJOR_VERSION}::Network
|
|
KF${QT_MAJOR_VERSION}::CoreAddons
|
|
${Qca_LIBRARY}
|
|
KF${QT_MAJOR_VERSION}::KIOCore
|
|
KF${QT_MAJOR_VERSION}::KIOGui
|
|
PRIVATE
|
|
Qt${QT_MAJOR_VERSION}::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 Qt5::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 KF5::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)
|