From ce65c2369e534132b473cb6742833e766884663f Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sun, 2 Feb 2020 04:56:32 +0400 Subject: [PATCH] Add dependencies for StatusNotifierItem --- external/CMakeLists.txt | 6 ++ external/dbusmenu_qt/CMakeLists.txt | 74 ++++++++++++++++++++++ external/statusnotifieritem/CMakeLists.txt | 37 +++++++++++ 3 files changed, 117 insertions(+) create mode 100644 external/dbusmenu_qt/CMakeLists.txt create mode 100644 external/statusnotifieritem/CMakeLists.txt diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 4187ad3..b52e2cd 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -6,6 +6,9 @@ add_subdirectory(auto_updates) add_subdirectory(crash_reports) +if (LINUX) + add_subdirectory(dbusmenu_qt) +endif() add_subdirectory(expected) add_subdirectory(ffmpeg) add_subdirectory(gsl) @@ -21,6 +24,9 @@ add_subdirectory(rlottie) if (APPLE) add_subdirectory(sp_media_key_tap) endif() +if (LINUX) + add_subdirectory(statusnotifieritem) +endif() add_subdirectory(variant) add_subdirectory(xxhash) add_subdirectory(zlib) diff --git a/external/dbusmenu_qt/CMakeLists.txt b/external/dbusmenu_qt/CMakeLists.txt new file mode 100644 index 0000000..ae3ebee --- /dev/null +++ b/external/dbusmenu_qt/CMakeLists.txt @@ -0,0 +1,74 @@ +# This file is part of Desktop App Toolkit, +# a set of libraries for developing nice desktop applications. +# +# For license and copyright information please follow this link: +# https://github.com/desktop-app/legal/blob/master/LEGAL + +if (DESKTOP_APP_USE_PACKAGED) + add_library(external_dbusmenu_qt INTERFACE IMPORTED GLOBAL) + add_library(desktop-app::external_dbusmenu_qt ALIAS external_dbusmenu_qt) + + find_package(dbusmenu-qt5) + + if (dbusmenu-qt5_FOUND) + target_link_libraries(external_dbusmenu_qt INTERFACE dbusmenu-qt5) + endif() +else() + add_library(external_dbusmenu_qt OBJECT) + add_library(desktop-app::external_dbusmenu_qt ALIAS external_dbusmenu_qt) + init_target(external_dbusmenu_qt "(external)") + + set(dbusmenu_qt_VERSION_MAJOR 0) + set(dbusmenu_qt_VERSION_MINOR 9) + set(dbusmenu_qt_VERSION_PATCH 2) + + set(dbusmenu_qt_loc ${third_party_loc}/libdbusmenu-qt/src) + + set(CMAKE_AUTOMOC_RELAXED_MODE ON) + set_target_properties(external_dbusmenu_qt PROPERTIES AUTOMOC ON AUTORCC ON) + + check_cxx_source_compiles(" + #include + int main() { + QIcon icon; + icon.name(); + return 0; + } + " HAVE_QICON_NAME) + + if (NOT HAVE_QICON_NAME) + message(STATUS "QIcon::name() does not exist, DBusMenuExporter will not export icon names by itself") + endif() + + configure_file(${dbusmenu_qt_loc}/dbusmenu_config.h.in "${CMAKE_CURRENT_BINARY_DIR}/dbusmenu_config.h" @ONLY) + configure_file(${dbusmenu_qt_loc}/dbusmenu_version.h.in "${CMAKE_CURRENT_BINARY_DIR}/dbusmenu_version.h") + + nice_target_sources(external_dbusmenu_qt ${dbusmenu_qt_loc} + PRIVATE + dbusmenu_p.cpp + dbusmenuexporter.cpp + dbusmenuexporterdbus_p.cpp + dbusmenuimporter.cpp + dbusmenutypes_p.cpp + dbusmenushortcut_p.cpp + utils.cpp + ) + + qt5_add_dbus_adaptor(dbusmenu_adaptor + ${dbusmenu_qt_loc}/com.canonical.dbusmenu.xml + ${dbusmenu_qt_loc}/dbusmenuexporterdbus_p.h + DBusMenuExporterDBus + ) + + target_sources(external_dbusmenu_qt PRIVATE ${dbusmenu_adaptor}) + + target_include_directories(external_dbusmenu_qt + PUBLIC + ${dbusmenu_qt_loc} + "${CMAKE_CURRENT_BINARY_DIR}") + + target_link_libraries(external_dbusmenu_qt + PUBLIC + desktop-app::external_qt + ) +endif() diff --git a/external/statusnotifieritem/CMakeLists.txt b/external/statusnotifieritem/CMakeLists.txt new file mode 100644 index 0000000..cd76398 --- /dev/null +++ b/external/statusnotifieritem/CMakeLists.txt @@ -0,0 +1,37 @@ +# This file is part of Desktop App Toolkit, +# a set of libraries for developing nice desktop applications. +# +# For license and copyright information please follow this link: +# https://github.com/desktop-app/legal/blob/master/LEGAL + +add_library(external_statusnotifieritem INTERFACE IMPORTED GLOBAL) +add_library(desktop-app::external_statusnotifieritem ALIAS external_statusnotifieritem) + +set(statusnotifieritem_loc ${third_party_loc}/statusnotifieritem) + +nice_target_sources(external_statusnotifieritem ${statusnotifieritem_loc} +INTERFACE + dbustypes.cpp + dbustypes.h + statusnotifieritem.cpp + statusnotifieritem.h +) + +qt5_add_dbus_adaptor(sni_adaptor + ${statusnotifieritem_loc}/org.kde.StatusNotifierItem.xml + ${statusnotifieritem_loc}/statusnotifieritem.h + StatusNotifierItem +) + +target_sources(external_statusnotifieritem INTERFACE ${sni_adaptor}) + +target_include_directories(external_statusnotifieritem +INTERFACE + ${statusnotifieritem_loc} + "${CMAKE_CURRENT_BINARY_DIR}") + +target_link_libraries(external_statusnotifieritem +INTERFACE + desktop-app::external_dbusmenu_qt + desktop-app::external_qt +)