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.

94 lines
2.4 KiB
CMake

project(platformthemeplugin)
include(GNUInstallDirs)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5QuickControls2 REQUIRED)
find_package(Qt5DBus REQUIRED)
find_package(Qt5X11Extras REQUIRED)
find_package(Qt5Gui CONFIG REQUIRED Private)
find_package(Qt5XdgIconLoader REQUIRED)
find_package(dbusmenu-qt5 REQUIRED)
find_package(KF5WindowSystem REQUIRED)
# dependencies for QPA plugin
find_package(Qt5ThemeSupport REQUIRED)
set(QT5PLATFORMSUPPORT_LIBS Qt5ThemeSupport::Qt5ThemeSupport)
# qdbusmenubar uses them
remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)
pkg_check_modules(XCB_EWMH REQUIRED xcb xcb-ewmh x11)
set (SRCS
main.cpp
platformtheme.h
platformtheme.cpp
hintsettings.h
hintsettings.cpp
systemtrayicon.h
systemtrayicon.cpp
qdbusmenubar_p.h
qdbusmenubar.cpp
x11integration.h
x11integration.cpp
statusnotifier/dbustypes.h
statusnotifier/dbustypes.cpp
statusnotifier/statusnotifieritem.h
statusnotifier/statusnotifieritem.cpp
)
qt5_add_dbus_interface(SRCS org.kde.StatusNotifierWatcher.xml statusnotifierwatcher_interface)
qt5_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
Qt5::GuiPrivate
Qt5::X11Extras
Qt5::Widgets
Qt5::QuickControls2
Qt5::Core
Qt5::DBus
dbusmenu-qt5
Qt5XdgIconLoader
KF5::WindowSystem
${XCB_LIBRARIES}
${QT5PLATFORMSUPPORT_LIBS}
)
get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION)
if(NOT QT_QMAKE_EXECUTABLE)
message(FATAL_ERROR "qmake is not found.")
endif()
# execute the command "qmake -query QT_INSTALL_PLUGINS" to get the path of plugins dir.
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_PLUGINS
OUTPUT_VARIABLE QT_PLUGINS_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(QT_PLUGINS_DIR)
message(STATUS "Qt5 plugin directory:" "${QT_PLUGINS_DIR}")
else()
message(FATAL_ERROR "Qt5 plugin directory cannot be detected.")
endif()
install(TARGETS cutefishplatformtheme LIBRARY DESTINATION "${QT_PLUGINS_DIR}/platformthemes")