kdeconnect-kde/indicator/CMakeLists.txt
Alexander Lohnau f740a8bda8 Use target-centric CMake approach for declaring debug category
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.
2023-07-22 20:51:19 +00:00

66 lines
2.7 KiB
CMake

add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-indicator\")
qt_add_resources(kdeconnect_custom_icons_SRCS ${CMAKE_SOURCE_DIR}/icons/custom_icons.qrc)
set(indicator_SRCS
main.cpp
deviceindicator.cpp
${kdeconnect_custom_icons_SRCS}
${CMAKE_CURRENT_SOURCE_DIR}/systray_actions/battery_action.cpp
${CMAKE_CURRENT_SOURCE_DIR}/systray_actions/connectivity_action.cpp
)
include(ECMAddAppIcon)
ecm_add_app_icon(indicator_SRCS ICONS
${CMAKE_SOURCE_DIR}/icons/app/sc-apps-kdeconnect.svg
${CMAKE_SOURCE_DIR}/icons/app/16-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/24-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/32-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/48-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/64-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/128-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/256-apps-kdeconnect.png
${CMAKE_SOURCE_DIR}/icons/app/1024-apps-kdeconnect.png
)
if (WIN32)
list(APPEND indicator_SRCS indicatorhelper_win.cpp)
elseif (APPLE)
list(APPEND indicator_SRCS indicatorhelper_mac.cpp serviceregister_mac.mm)
else ()
list(APPEND indicator_SRCS indicatorhelper.cpp)
endif()
add_executable(kdeconnect-indicator ${indicator_SRCS})
ecm_qt_declare_logging_category(kdeconnect-indicator
HEADER indicator_debug.h
IDENTIFIER KDECONNECT_INDICATOR CATEGORY_NAME kdeconnect.indicator
DEFAULT_SEVERITY Warning
EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (indicator)")
target_include_directories(kdeconnect-indicator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/systray_actions)
target_link_libraries(kdeconnect-indicator Qt::Widgets KF${QT_MAJOR_VERSION}::CoreAddons KF${QT_MAJOR_VERSION}::I18n KF${QT_MAJOR_VERSION}::Notifications KF${QT_MAJOR_VERSION}::DBusAddons KF${QT_MAJOR_VERSION}::KCMUtils kdeconnectinterfaces kdeconnectcore kdeconnectversion)
if (WIN32)
target_link_libraries(kdeconnect-indicator windowsapp)
target_compile_features(kdeconnect-indicator PUBLIC cxx_std_17)
endif()
if (APPLE)
# Apple frameworks
target_link_libraries(kdeconnect-indicator "-framework AppKit")
# Apple app package
set_target_properties(kdeconnect-indicator PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
set_target_properties(kdeconnect-indicator PROPERTIES
MACOSX_BUNDLE_BUNDLE_NAME "KDE Connect"
MACOSX_BUNDLE_LONG_VERSION_STRING "${KDECONNECT_VERSION_STRING}"
MACOSX_BUNDLE_SHORT_VERSION_STRING "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}.${KDECONNECT_VERSION_PATCH}"
MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.kdeconnect")
endif()
install(TARGETS kdeconnect-indicator ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(PROGRAMS org.kde.kdeconnect.nonplasma.desktop DESTINATION ${KDE_INSTALL_APPDIR})