Warning, /plasma/oxygen/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.25)
0002 project(oxygen)
0003 set(PROJECT_VERSION "6.0.80")
0004 set(PROJECT_VERSION_MAJOR 6)
0005
0006 include(GenerateExportHeader)
0007 include(WriteBasicConfigVersionFile)
0008 include(FeatureSummary)
0009
0010 ################# Qt/KDE #################
0011 set(PROJECT_DEP_VERSION "6.0.80")
0012 set(QT5_MIN_VERSION "5.15.2")
0013 set(KF5_MIN_VERSION "5.102.0")
0014 set(QT_MIN_VERSION "6.6.0")
0015 set(KF6_MIN_VERSION "5.240.0")
0016
0017 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0018
0019 set(CMAKE_CXX_STANDARD 20)
0020 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0021
0022 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
0023 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} )
0024
0025 set(QT_NO_CREATE_VERSIONLESS_TARGETS ON)
0026 set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS ON)
0027
0028 option(BUILD_QT5 "Build Qt5 style" ON)
0029 option(BUILD_QT6 "Build with Qt6" ON)
0030
0031 # For KDE CI only. As the current infrastructure doesn't allow us to set CMAKE options per build variant
0032 if($ENV{CI_JOB_NAME_SLUG} MATCHES "qt5")
0033 set(BUILD_QT5 ON)
0034 set(BUILD_QT6 OFF)
0035 elseif($ENV{CI_JOB_NAME_SLUG} MATCHES "qt6")
0036 set(BUILD_QT5 OFF)
0037 set(BUILD_QT6 ON)
0038 endif()
0039
0040 include(ECMInstallIcons)
0041 include(KDECompilerSettings NO_POLICY_SCOPE)
0042 include(KDEClangFormat)
0043 include(KDEGitCommitHooks)
0044
0045 find_package(XCB COMPONENTS XCB)
0046 set_package_properties(XCB PROPERTIES
0047 DESCRIPTION "X protocol C-language Binding"
0048 URL "http://xcb.freedesktop.org"
0049 TYPE OPTIONAL
0050 PURPOSE "Required to pass style properties to native Windows on X11 Platform"
0051 )
0052
0053 if(NOT APPLE)
0054 set(OXYGEN_HAVE_X11 ${XCB_XCB_FOUND})
0055 endif()
0056
0057 if(BUILD_QT5)
0058 block(SCOPE_FOR VARIABLES)
0059 set(QT_MAJOR_VERSION 5)
0060 unset(QUERY_EXECUTABLE CACHE)
0061
0062 include(KDEInstallDirs5)
0063 include (KDECMakeSettings)
0064
0065 find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED CONFIG COMPONENTS Widgets DBus Quick)
0066 find_package(KF5 ${KF_MIN_VERSION} REQUIRED COMPONENTS
0067 I18n
0068 Config
0069 CoreAddons
0070 GuiAddons
0071 WidgetsAddons
0072 Service
0073 Completion
0074 FrameworkIntegration
0075 WindowSystem)
0076
0077 if (XCB_XCB_FOUND)
0078 find_package(Qt5 REQUIRED CONFIG COMPONENTS X11Extras)
0079 endif()
0080
0081
0082 add_subdirectory(liboxygen liboxygen5)
0083 add_subdirectory(kstyle kstyle5)
0084 endblock()
0085 endif()
0086
0087 if(BUILD_QT6)
0088 block(SCOPE_FOR VARIABLES)
0089 set(QT_MAJOR_VERSION 6)
0090 unset(QUERY_EXECUTABLE CACHE)
0091
0092 include(KDEInstallDirs6)
0093 include (KDECMakeSettings)
0094 find_package(Qt6 ${QT_MIN_VERSION} REQUIRED CONFIG COMPONENTS Widgets DBus Quick)
0095 find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
0096 I18n
0097 Config
0098 CoreAddons
0099 GuiAddons
0100 KCMUtils
0101 WidgetsAddons
0102 Service
0103 Completion
0104 FrameworkIntegration
0105 WindowSystem)
0106 find_package(Plasma ${PROJECT_DEP_VERSION} REQUIRED)
0107
0108 # https://bugreports.qt.io/browse/QTBUG-114706
0109 add_library(Qt::Core ALIAS Qt6::Core)
0110 add_library(Qt::Gui ALIAS Qt6::Gui)
0111 add_library(Qt::OpenGL ALIAS Qt6::OpenGL)
0112 add_library(Qt::Network ALIAS Qt6::Network)
0113 if(Qt6_VERSION_MINOR GREATER 6)
0114 add_library(Qt::PlatformModuleInternal ALIAS Qt6::PlatformModuleInternal)
0115 endif()
0116
0117 add_subdirectory(liboxygen liboxygen6)
0118 add_subdirectory(kstyle kstyle6)
0119
0120 add_subdirectory(color-schemes)
0121 add_subdirectory(cursors)
0122 add_subdirectory(kdecoration)
0123
0124 plasma_install_package(lookandfeel org.kde.oxygen look-and-feel lookandfeel)
0125
0126 ki18n_install(po)
0127 endblock()
0128 endif()
0129
0130 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0131 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0132
0133 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0134
0135 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)