Warning, /plasma/plasma-integration/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 project(PlasmaIntegration)
0004 set(PROJECT_VERSION "6.0.80")
0005 set(PROJECT_VERSION_MAJOR 6)
0006
0007 set(QT5_MIN_VERSION "5.15.2")
0008 set(QT_MIN_VERSION "6.6.0")
0009 set(KF5_MIN_VERSION "5.102.0")
0010 set(KF6_MIN_VERSION "5.240.0")
0011 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0012
0013 set(CMAKE_CXX_STANDARD 20)
0014 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0015
0016 set(QT_NO_CREATE_VERSIONLESS_TARGETS ON)
0017 set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS ON)
0018
0019 find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
0020 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH} )
0021
0022 # We need this because we can't include KDECMakeSettings here, because that
0023 # would need KDEInstallDirs, which we can only include in the qt{5,6} subdirs
0024 # to get the correct installation dirs for each Qt version.
0025 option(BUILD_TESTING "Build the testing tree." ON)
0026 if(BUILD_TESTING)
0027 enable_testing()
0028 endif()
0029
0030 include(KDECompilerSettings NO_POLICY_SCOPE)
0031 include(FeatureSummary)
0032 include(GenerateExportHeader)
0033 include(KDEClangFormat)
0034 include(KDEGitCommitHooks)
0035 include(ECMDeprecationSettings)
0036
0037 find_package(Wayland 1.9 REQUIRED Client)
0038 find_package(PlasmaWaylandProtocols 1.6.0 CONFIG REQUIRED)
0039
0040 option(BUILD_QT5 "Build for Qt5" ON)
0041 option(BUILD_QT6 "Build for Qt6" ON)
0042
0043 #CI is stupid and doesn't allow us to set CMAKE options per build variant
0044 if ($ENV{CI_JOB_NAME_SLUG} MATCHES "qt5")
0045 set(BUILD_QT5 ON)
0046 set(BUILD_QT6 OFF)
0047 elseif($ENV{CI_JOB_NAME_SLUG} MATCHES "qt6")
0048 set(BUILD_QT5 OFF)
0049 set(BUILD_QT6 ON)
0050 endif()
0051
0052 find_package(XCB COMPONENTS XCB)
0053 set_package_properties(XCB PROPERTIES
0054 DESCRIPTION "X protocol C-language Binding"
0055 URL "https://xcb.freedesktop.org"
0056 TYPE REQUIRED
0057 PURPOSE "Required to pass style properties to native Windows on X11 Platform"
0058 )
0059
0060 find_package(FontNotoSans)
0061 set_package_properties(FontNotoSans PROPERTIES
0062 PURPOSE "Default sans-serif font -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_FontNotoSans=true to mark it ignored."
0063 URL "https://www.google.com/get/noto/"
0064 TYPE RUNTIME
0065 )
0066 find_package(FontNotoColorEmoji)
0067 set_package_properties(FontNotoColorEmoji PROPERTIES
0068 PURPOSE "Default emoji font -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_FontNotoColorEmoji=true to mark it ignored."
0069 URL "https://www.google.com/get/noto/"
0070 TYPE RUNTIME
0071 )
0072 find_package(FontHack)
0073 set_package_properties(FontHack PROPERTIES
0074 PURPOSE "Default monospace font -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_FontHack=true to mark it ignored."
0075 URL "https://sourcefoundry.org/hack/"
0076 TYPE RUNTIME
0077 )
0078 find_package(XDGDesktopPortalKDE)
0079 set_package_properties(XDGDesktopPortalKDE PROPERTIES
0080 PURPOSE "Required for open-with dialog to work correctly -- this is not detected automatically, pass -DCMAKE_DISABLE_FIND_PACKAGE_XDGDesktopPortalKDE=true to mark it ignored."
0081 URL "https://invent.kde.org/plasma/xdg-desktop-portal-kde"
0082 TYPE RUNTIME
0083 )
0084
0085 # add clang-format target for all our real source files
0086 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0087 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0088 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0089
0090 if (${BUILD_QT5})
0091 unset(QUERY_EXECUTABLE CACHE)
0092 add_subdirectory(qt5)
0093 endif()
0094
0095 if (${BUILD_QT6})
0096 unset(QUERY_EXECUTABLE CACHE)
0097
0098 add_definitions(-DTRANSLATION_DOMAIN=\"plasmaintegration5\")
0099 add_subdirectory(qt6)
0100
0101 find_package(KF6I18n CONFIG REQUIRED)
0102 ki18n_install(po)
0103 endif()
0104
0105 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)