################# Qt/KDE ################# find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED CONFIG COMPONENTS Widgets DBus) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons I18n Config GuiAddons IconThemes ConfigWidgets WindowSystem) find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} OPTIONAL_COMPONENTS Quick) set(BREEZE_HAVE_QTQUICK ${Qt${QT_MAJOR_VERSION}Quick_FOUND}) if( BREEZE_HAVE_QTQUICK ) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2) endif() if (TARGET Qt5::Core) find_package(Qt5 ${QT_MIN_VERSION} OPTIONAL_COMPONENTS X11Extras) set(BREEZE_HAVE_QTX11EXTRAS ${Qt5X11Extras_FOUND}) elseif(NOT WIN32) set(BREEZE_HAVE_QTX11EXTRAS TRUE) # part of Qt6::Gui endif() find_package( KF5FrameworkIntegration ${KF5_MIN_VERSION} CONFIG ) set_package_properties(KF5FrameworkIntegration PROPERTIES DESCRIPTION "KF5 Framework Integration" URL "https://projects.kde.org/projects/frameworks/frameworkintegration" TYPE OPTIONAL PURPOSE "Required to use KStyle convenience functionalities in style") set(BREEZE_HAVE_KSTYLE ${KF5FrameworkIntegration_FOUND}) ################# includes ################# include_directories( animations debug ) include_directories(${CMAKE_SOURCE_DIR}/libbreezecommon) include_directories(${CMAKE_BINARY_DIR}/libbreezecommon) ################# configuration ################# configure_file(config-breeze.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-breeze.h ) ########### next target ############### set(breeze_PART_SRCS animations/breezeanimation.cpp animations/breezeanimations.cpp animations/breezeanimationdata.cpp animations/breezebaseengine.cpp animations/breezebusyindicatordata.cpp animations/breezebusyindicatorengine.cpp animations/breezedialdata.cpp animations/breezedialengine.cpp animations/breezeenabledata.cpp animations/breezegenericdata.cpp animations/breezeheaderviewdata.cpp animations/breezeheaderviewengine.cpp animations/breezescrollbardata.cpp animations/breezescrollbarengine.cpp animations/breezespinboxengine.cpp animations/breezespinboxdata.cpp animations/breezestackedwidgetdata.cpp animations/breezestackedwidgetengine.cpp animations/breezetabbarengine.cpp animations/breezetabbardata.cpp animations/breezetoolboxengine.cpp animations/breezetransitiondata.cpp animations/breezetransitionwidget.cpp animations/breezewidgetstateengine.cpp animations/breezewidgetstatedata.cpp debug/breezewidgetexplorer.cpp breezeaddeventfilter.cpp breezeblurhelper.cpp breezeframeshadow.cpp breezehelper.cpp breezemdiwindowshadow.cpp breezemnemonics.cpp breezepropertynames.cpp breezeshadowhelper.cpp breezesplitterproxy.cpp breezestyle.cpp breezestyleplugin.cpp breezetileset.cpp breezewindowmanager.cpp breezetoolsareamanager.cpp ) kconfig_add_kcfg_files(breeze_PART_SRCS ../kdecoration/breezesettings.kcfgc) kconfig_add_kcfg_files(breeze_PART_SRCS breezestyleconfigdata.kcfgc) add_library(breeze MODULE ${breeze_PART_SRCS}) target_link_libraries(breeze Qt::Core Qt::Gui Qt::Widgets Qt::DBus) if( BREEZE_HAVE_QTQUICK ) target_link_libraries(breeze Qt::Quick KF5::CoreAddons KF5::Kirigami2) endif() if (TARGET Qt5::X11Extras) target_link_libraries(breeze Qt5::X11Extras) elseif (TARGET Qt6::Gui) target_link_libraries(breeze Qt6::GuiPrivate) endif() target_link_libraries(breeze KF5::CoreAddons KF5::ConfigCore KF5::ConfigWidgets KF5::GuiAddons KF5::IconThemes KF5::WindowSystem) target_link_libraries(breeze breezecommon5) if(KF5FrameworkIntegration_FOUND) target_link_libraries(breeze KF5::Style) endif() if (WIN32) # As stated in https://docs.microsoft.com/en-us/cpp/c-runtime-library/math-constants M_PI only gets defined # when if _USE_MATH_DEFINES is defined target_compile_definitions(breeze PRIVATE _USE_MATH_DEFINES _BSD_SOURCE) endif() ########### install files ############### install(TARGETS breeze DESTINATION ${KDE_INSTALL_QTPLUGINDIR}/styles/) install(FILES breeze.themerc DESTINATION ${KDE_INSTALL_DATADIR}/kstyle/themes) ########### subdirectories ############### add_subdirectory(config)