Warning, /maui/mauikit-terminal/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2020 Camilo Higuita <milo.h@aol.com>
0002 #
0003 # SPDX-License-Identifier: GPL-3.0-or-later
0004
0005 cmake_minimum_required(VERSION 3.16)
0006
0007 option(BUILD_WITH_QT5 "Use Qt 5" OFF)
0008 option(BUILD_WITH_QT6 "Use Qt 6" OFF)
0009
0010 if(BUILD_WITH_QT5)
0011 set(QT_MAJOR_VERSION 5)
0012 elseif(BUILD_WITH_QT6)
0013 set(QT_MAJOR_VERSION 6)
0014 else()
0015 set(QT_MAJOR_VERSION 5)
0016 endif()
0017
0018 if (QT_MAJOR_VERSION STREQUAL "6")
0019 set(REQUIRED_QT_VERSION 6.4)
0020 set(REQUIRED_KF_VERSION 5.240.0)
0021 set(KF_MAJOR_VERSION 6)
0022 set(MAUI_MAJOR_VERSION 4)
0023
0024 set(MAUIKIT_VERSION 4.0.0)
0025
0026 else()
0027 set(REQUIRED_QT_VERSION 5.15.2)
0028 set(REQUIRED_KF_VERSION 5.91.0)
0029 set(KF_MAJOR_VERSION 5)
0030 set(MAUI_MAJOR_VERSION 3)
0031
0032 set(MAUIKIT_VERSION 3.1.0)
0033 endif()
0034
0035 set(CMAKE_CXX_STANDARD 17)
0036 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0037
0038 set(CMAKE_INCLUDE_CURRENT_DIR ON)
0039 set(CMAKE_AUTOMOC ON)
0040 set(CMAKE_AUTORCC ON)
0041
0042 set(AUTOMOC_MOC_OPTIONS -Muri=org.mauikit.terminal)
0043
0044 project(Terminal LANGUAGES CXX VERSION ${MAUIKIT_VERSION})
0045
0046 find_package(ECM ${REQUIRED_KF_VERSION} NO_MODULE)
0047 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0048
0049 include(GenerateExportHeader)
0050 include(GNUInstallDirs)
0051 include(FeatureSummary)
0052 include(CMakePackageConfigHelpers)
0053
0054 include(KDEInstallDirs)
0055 include(KDECMakeSettings)
0056 include(KDECompilerSettings)
0057 include(KDEPackageAppTemplates)
0058 include(KDEClangFormat)
0059
0060 include(ECMSetupVersion)
0061 include(ECMGenerateQmlTypes)
0062 include(ECMGenerateHeaders)
0063 include(ECMFindQmlModule)
0064 include(ECMQmlModule)
0065 include(ECMSourceVersionControl)
0066
0067 option(QUICK_COMPILER "Use QtQuick compiler to improve performance" TRUE)
0068
0069 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS
0070 Core
0071 Quick
0072 Widgets)
0073
0074 find_package(KF${KF_MAJOR_VERSION} ${REQUIRED_KF_VERSION} REQUIRED COMPONENTS
0075 I18n
0076 CoreAddons
0077 Config)
0078
0079 find_package(MauiKit${MAUI_MAJOR_VERSION} ${MAUIKIT_VERSION})
0080
0081 if (QT_MAJOR_VERSION STREQUAL "5")
0082 if(QUICK_COMPILER)
0083 find_package(Qt5QuickCompiler)
0084 set_package_properties(Qt5QuickCompiler PROPERTIES
0085 DESCRIPTION "Compile QML at build time"
0086 TYPE OPTIONAL)
0087 endif()
0088 endif()
0089
0090 if(${ECM_SOURCE_UNDER_VERSION_CONTROL})
0091 execute_process(
0092 COMMAND git rev-parse --abbrev-ref HEAD
0093 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0094 OUTPUT_VARIABLE GIT_BRANCH
0095 OUTPUT_STRIP_TRAILING_WHITESPACE)
0096
0097 # Get the latest abbreviated commit hash of the working branch
0098 execute_process(
0099 COMMAND git log -1 --format=%h
0100 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0101 OUTPUT_VARIABLE GIT_COMMIT_HASH
0102 OUTPUT_STRIP_TRAILING_WHITESPACE)
0103
0104 add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
0105 add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
0106
0107 else()
0108 add_definitions(-DGIT_COMMIT_HASH="${PROJECT_VERSION}")
0109 add_definitions(-DGIT_BRANCH="Stable")
0110 endif()
0111
0112 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/MauiKitTerminal${MAUI_MAJOR_VERSION}")
0113
0114 ecm_setup_version(${PROJECT_VERSION}
0115 VARIABLE_PREFIX Terminal
0116 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/terminal_version.h"
0117 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/MauiKitTerminal${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0118 SOVERSION ${PROJECT_VERSION_MAJOR})
0119
0120 configure_package_config_file(
0121 "${CMAKE_CURRENT_SOURCE_DIR}/MauiKitTerminalConfig.cmake.in.${QT_MAJOR_VERSION}"
0122 "${CMAKE_CURRENT_BINARY_DIR}/MauiKitTerminal${MAUI_MAJOR_VERSION}Config.cmake"
0123 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0124 PATH_VARS CMAKE_INSTALL_PREFIX)
0125
0126 install(FILES
0127 "${CMAKE_CURRENT_BINARY_DIR}/MauiKitTerminal${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0128 "${CMAKE_CURRENT_BINARY_DIR}/MauiKitTerminal${MAUI_MAJOR_VERSION}Config.cmake"
0129 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0130 COMPONENT Devel)
0131
0132 install(EXPORT MauiKitTerminal${MAUI_MAJOR_VERSION}Targets
0133 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0134 FILE MauiKitTerminal${MAUI_MAJOR_VERSION}Targets.cmake
0135 NAMESPACE MauiKit${MAUI_MAJOR_VERSION}::)
0136
0137 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/terminal_version.h"
0138 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/MauiKit${MAUI_MAJOR_VERSION}/Terminal
0139 COMPONENT Devel)
0140
0141 add_definitions(-DTRANSLATION_DOMAIN="mauikitterminal")
0142 ki18n_install(po)
0143
0144 #add_subdirectory(src/lib)
0145 add_subdirectory(src)
0146
0147 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0148 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0149
0150 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)