mirror of https://github.com/cutefishos/qt-plugins
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.1 KiB
CMake
73 lines
2.1 KiB
CMake
project(platformthemeplugin)
|
|
include(GNUInstallDirs)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Core Widgets QuickControls2 DBus)
|
|
find_package(Qt6Gui CONFIG QUIET COMPONENTS Private)
|
|
if(NOT TARGET Qt6::GuiPrivate)
|
|
find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
|
|
endif()
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(Qt6XdgIconLoader REQUIRED IMPORTED_TARGET Qt6XdgIconLoader)
|
|
find_path(QT6XDGICONLOADER_PRIVATE_INCLUDE_DIR
|
|
NAMES private/xdgiconloader/xdgiconloader_p.h
|
|
PATHS ${Qt6XdgIconLoader_INCLUDE_DIRS} /usr/include/qt6xdgiconloader
|
|
PATH_SUFFIXES ${Qt6XdgIconLoader_VERSION}
|
|
REQUIRED
|
|
)
|
|
|
|
set (SRCS
|
|
main.cpp
|
|
platformtheme.h
|
|
platformtheme.cpp
|
|
hintsettings.h
|
|
hintsettings.cpp
|
|
systemtrayicon.h
|
|
systemtrayicon.cpp
|
|
statusnotifier/dbustypes.h
|
|
statusnotifier/dbustypes.cpp
|
|
statusnotifier/statusnotifieritem.h
|
|
statusnotifier/statusnotifieritem.cpp
|
|
)
|
|
|
|
qt6_add_dbus_interface(SRCS org.kde.StatusNotifierWatcher.xml statusnotifierwatcher_interface)
|
|
|
|
qt6_add_dbus_adaptor(SRCS
|
|
statusnotifier/org.kde.StatusNotifierItem.xml
|
|
statusnotifier/statusnotifieritem.h
|
|
StatusNotifierItem
|
|
)
|
|
|
|
add_library(cutefishplatformtheme MODULE ${SRCS})
|
|
|
|
target_compile_definitions(cutefishplatformtheme
|
|
PRIVATE
|
|
"QT_NO_FOREACH"
|
|
"LIB_FM_QT_SONAME=\"${LIB_FM_QT_SONAME}\""
|
|
)
|
|
|
|
target_link_libraries(cutefishplatformtheme PRIVATE
|
|
Qt6::GuiPrivate
|
|
Qt6::Widgets
|
|
Qt6::QuickControls2
|
|
Qt6::Core
|
|
Qt6::DBus
|
|
PkgConfig::Qt6XdgIconLoader
|
|
|
|
)
|
|
target_include_directories(cutefishplatformtheme PRIVATE "${QT6XDGICONLOADER_PRIVATE_INCLUDE_DIR}")
|
|
|
|
find_program(QT_PATHS_EXECUTABLE NAMES qtpaths6 REQUIRED)
|
|
execute_process(COMMAND "${QT_PATHS_EXECUTABLE}" -query QT_INSTALL_PLUGINS
|
|
OUTPUT_VARIABLE QT_PLUGINS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if(QT_PLUGINS_DIR)
|
|
message(STATUS "Qt6 plugin directory:" "${QT_PLUGINS_DIR}")
|
|
else()
|
|
message(FATAL_ERROR "Qt6 plugin directory cannot be detected.")
|
|
endif()
|
|
|
|
install(TARGETS cutefishplatformtheme LIBRARY DESTINATION "${QT_PLUGINS_DIR}/platformthemes")
|