Warning, /maui/mauikit-documents/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.95.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 if(POLICY CMP0063)
0043     cmake_policy (SET CMP0063 NEW)
0044 endif(POLICY CMP0063)
0045 
0046 set(AUTOMOC_MOC_OPTIONS -Muri=org.mauikit.documents)
0047 
0048 project(Documents LANGUAGES CXX VERSION ${MAUIKIT_VERSION})
0049 
0050 find_package(ECM ${REQUIRED_KF_VERSION} NO_MODULE)
0051 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0052 
0053 include(GenerateExportHeader)
0054 include(GNUInstallDirs)
0055 include(FeatureSummary)
0056 include(CMakePackageConfigHelpers)
0057 
0058 include(KDEInstallDirs)
0059 include(KDECMakeSettings)
0060 include(KDECompilerSettings)
0061 include(KDEPackageAppTemplates)
0062 include(KDEClangFormat)
0063 
0064 include(ECMSetupVersion)
0065 include(ECMGenerateQmlTypes)
0066 include(ECMGenerateHeaders)
0067 include(ECMFindQmlModule)
0068 include(ECMQmlModule)
0069 include(ECMQtDeclareLoggingCategory)
0070 include(ECMSourceVersionControl)
0071 
0072 option(QUICK_COMPILER "Use QtQuick compiler to improve performance" TRUE)
0073 
0074 if(ANDROID)
0075     find_package(Qt${QT_MAJOR_VERSION} REQUIRED COMPONENTS AndroidExtras)
0076     find_package(Gradle REQUIRED)
0077 endif()
0078 
0079 if(UNIX AND NOT ANDROID)
0080     find_package(KF${KF_MAJOR_VERSION}  ${REQUIRED_KF_VERSION} REQUIRED COMPONENTS Config)
0081 endif()
0082 
0083 find_package(Qt${QT_MAJOR_VERSION}  ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS
0084     Core
0085     Quick
0086     Concurrent)
0087 
0088 find_package(KF${KF_MAJOR_VERSION}  ${REQUIRED_KF5_VERSION} REQUIRED COMPONENTS
0089     I18n
0090     CoreAddons)
0091 
0092 find_package(MauiKit${MAUI_MAJOR_VERSION} ${MAUIKIT_VERSION})
0093 
0094 if (QT_MAJOR_VERSION STREQUAL "5")
0095 if(QUICK_COMPILER)
0096 find_package(Qt5QuickCompiler)
0097 set_package_properties(Qt5QuickCompiler PROPERTIES
0098     DESCRIPTION "Compile QML at build time"
0099     TYPE OPTIONAL)
0100 endif()
0101 endif()
0102 
0103 if(${ECM_SOURCE_UNDER_VERSION_CONTROL})
0104     execute_process(
0105         COMMAND git rev-parse --abbrev-ref HEAD
0106         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0107         OUTPUT_VARIABLE GIT_BRANCH
0108         OUTPUT_STRIP_TRAILING_WHITESPACE)
0109 
0110     # Get the latest abbreviated commit hash of the working branch
0111     execute_process(
0112         COMMAND git log -1 --format=%h
0113         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0114         OUTPUT_VARIABLE GIT_COMMIT_HASH
0115         OUTPUT_STRIP_TRAILING_WHITESPACE)
0116 
0117     add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
0118     add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
0119 
0120 else()
0121     add_definitions(-DGIT_COMMIT_HASH="${PROJECT_VERSION}")
0122     add_definitions(-DGIT_BRANCH="Stable")
0123 endif()
0124 
0125 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/MauiKitDocuments${MAUI_MAJOR_VERSION}")
0126 
0127 ecm_setup_version(${PROJECT_VERSION}
0128     VARIABLE_PREFIX Documents
0129     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/documents_version.h"
0130     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/MauiKitDocuments${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0131     SOVERSION ${PROJECT_VERSION_MAJOR})
0132 
0133 configure_package_config_file(
0134     "${CMAKE_CURRENT_SOURCE_DIR}/MauiKitDocumentsConfig.cmake.in.${QT_MAJOR_VERSION}"
0135     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitDocuments${MAUI_MAJOR_VERSION}Config.cmake"
0136     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0137     PATH_VARS CMAKE_INSTALL_PREFIX)
0138 
0139 install(FILES
0140     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitDocuments${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0141     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitDocuments${MAUI_MAJOR_VERSION}Config.cmake"
0142     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0143     COMPONENT Devel)
0144 
0145 install(EXPORT MauiKitDocuments${MAUI_MAJOR_VERSION}Targets
0146     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0147     FILE MauiKitDocuments${MAUI_MAJOR_VERSION}Targets.cmake
0148     NAMESPACE MauiKit${MAUI_MAJOR_VERSION}::)
0149 
0150 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/documents_version.h"
0151     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/MauiKit${MAUI_MAJOR_VERSION}/Documents
0152     COMPONENT Devel)
0153 
0154 add_definitions(-DTRANSLATION_DOMAIN="mauikitdocuments")
0155 ki18n_install(po)
0156 
0157 add_subdirectory(src)
0158 
0159 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0160 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0161 
0162 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)