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)