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.
66 lines
2.7 KiB
CMake
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})
|