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)