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)