Warning, /maui/mauikit-imagetools/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.eu>
0002 #
0003 # SPDX-License-Identifier: BSD-2-Clause
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 11)
0036 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0037 
0038 set(CMAKE_INCLUDE_CURRENT_DIR ON)
0039 
0040 set(AUTOMOC_MOC_OPTIONS -Muri=org.mauikit.imagetools)
0041 
0042 project(ImageTools LANGUAGES CXX VERSION ${MAUIKIT_VERSION})
0043 
0044 find_package(ECM ${REQUIRED_KF_VERSION} NO_MODULE)
0045 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0046 
0047 include(GenerateExportHeader)
0048 include(GNUInstallDirs)
0049 include(FeatureSummary)
0050 include(CMakePackageConfigHelpers)
0051 
0052 include(KDEInstallDirs)
0053 include(KDECMakeSettings)
0054 include(KDECompilerSettings)
0055 include(KDEPackageAppTemplates)
0056 include(KDEClangFormat)
0057 
0058 include(ECMSetupVersion)
0059 include(ECMGenerateQmlTypes)
0060 include(ECMGenerateHeaders)
0061 include(ECMFindQmlModule)
0062 include(ECMQmlModule)
0063 include(ECMSourceVersionControl)
0064 
0065 option(QUICK_COMPILER "Use QtQuick compiler to improve performance" TRUE)
0066 
0067 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Core Quick Qml Sql Positioning)
0068 find_package(LibExiv2 0.21 REQUIRED)
0069 #find_package(ImageMagick)
0070 
0071 if(ANDROID)
0072     find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} COMPONENTS AndroidExtras)
0073 endif()
0074 
0075 find_package(KF${KF_MAJOR_VERSION} ${REQUIRED_KF_VERSION} REQUIRED COMPONENTS I18n CoreAddons)
0076 find_package(MauiKit${MAUI_MAJOR_VERSION} REQUIRED)
0077 
0078 ecm_find_qmlmodule(org.kde.kquickimageeditor 1.0)
0079 
0080 find_package(KQuickImageEditor COMPONENTS)
0081 set_package_properties(KQuickImageEditor PROPERTIES
0082     TYPE REQUIRED
0083     DESCRIPTION "Simple image editor for QtQuick applications"
0084     URL "https://invent.kde.org/libraries/kquickimageeditor/"
0085     PURPOSE "Add image editing capability to image attachments")
0086 
0087 if (QT_MAJOR_VERSION STREQUAL "5")
0088     if(QUICK_COMPILER)
0089         find_package(Qt5QuickCompiler)
0090         set_package_properties(Qt5QuickCompiler PROPERTIES
0091             DESCRIPTION "Compile QML at build time"
0092             TYPE OPTIONAL)
0093     endif()
0094 else()
0095      find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
0096 endif()
0097 
0098 if(${ECM_SOURCE_UNDER_VERSION_CONTROL})
0099     execute_process(
0100         COMMAND git rev-parse --abbrev-ref HEAD
0101         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0102         OUTPUT_VARIABLE GIT_BRANCH
0103         OUTPUT_STRIP_TRAILING_WHITESPACE)
0104 
0105     # Get the latest abbreviated commit hash of the working branch
0106     execute_process(
0107         COMMAND git log -1 --format=%h
0108         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0109         OUTPUT_VARIABLE GIT_COMMIT_HASH
0110         OUTPUT_STRIP_TRAILING_WHITESPACE)
0111 
0112     add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
0113     add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
0114 else()
0115     add_definitions(-DGIT_COMMIT_HASH="${PROJECT_VERSION}")
0116     add_definitions(-DGIT_BRANCH="Stable")
0117 endif()
0118 
0119 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/MauiKitImageTools${MAUI_MAJOR_VERSION}")
0120 
0121 ecm_setup_version(${PROJECT_VERSION}
0122     VARIABLE_PREFIX ImageTools
0123     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/imagetools_version.h"
0124     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/MauiKitImageTools${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0125     SOVERSION ${PROJECT_VERSION_MAJOR})
0126 
0127 configure_package_config_file(
0128     "${CMAKE_CURRENT_SOURCE_DIR}/MauiKitImageToolsConfig.cmake.in.${QT_MAJOR_VERSION}"
0129     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitImageTools${MAUI_MAJOR_VERSION}Config.cmake"
0130     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0131     PATH_VARS CMAKE_INSTALL_PREFIX)
0132 
0133 install(FILES
0134     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitImageTools${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0135     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitImageTools${MAUI_MAJOR_VERSION}Config.cmake"
0136     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0137     COMPONENT Devel)
0138 
0139 install(EXPORT MauiKitImageTools${MAUI_MAJOR_VERSION}Targets
0140     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0141     FILE MauiKitImageTools${MAUI_MAJOR_VERSION}Targets.cmake
0142     NAMESPACE MauiKit${MAUI_MAJOR_VERSION}::)
0143 
0144 
0145 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/imagetools_version.h"
0146     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/MauiKit${MAUI_MAJOR_VERSION}/FileBrowsing
0147     COMPONENT Devel)
0148 
0149 kde_enable_exceptions()
0150 
0151 add_definitions(-DTRANSLATION_DOMAIN="mauikitimagetools")
0152 ki18n_install(po)
0153 
0154 add_subdirectory(src)
0155 
0156 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0157 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0158 
0159 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)