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

0001 # Copyright 2018-2021 Camilo Higuita <milo.h@aol.com>
0002 # Copyright 2018-2021 Nitrux Latinoamericana S.C.
0003 #
0004 # SPDX-License-Identifier: GPL-3.0-or-later
0005 
0006 cmake_minimum_required(VERSION 3.16)
0007 
0008 option(BUILD_WITH_QT5 "Use Qt 5" OFF)
0009 option(BUILD_WITH_QT6 "Use Qt 6" OFF)
0010 
0011 if(BUILD_WITH_QT5)
0012     set(QT_MAJOR_VERSION 5)
0013 elseif(BUILD_WITH_QT6)
0014     set(QT_MAJOR_VERSION 6)
0015 else()
0016     set(QT_MAJOR_VERSION 5)
0017 endif()
0018 
0019 if (QT_MAJOR_VERSION STREQUAL "6")
0020     set(REQUIRED_QT_VERSION 6.4)
0021     set(REQUIRED_KF_VERSION 5.240.0)
0022     set(KF_MAJOR_VERSION 6)
0023     set(MAUI_MAJOR_VERSION 4)
0024 
0025     set(MAUIKIT_VERSION 4.0.0)
0026 
0027     set(AKONADI_LIB_VERSION "5.240.81")
0028     set(AKONADICALENDAR_LIB_VERSION "5.240.81")
0029     set(AKONADI_CONTACT_VERSION "5.240.81")
0030     set(AKONADIMIME_LIB_VERSION "5.240.81")
0031     set(CALENDARUTILS_LIB_VERSION "5.240.81")
0032 
0033 else()
0034     set(REQUIRED_QT_VERSION 5.15.2)
0035     set(REQUIRED_KF_VERSION 5.96.0)
0036 
0037     set(KF_MAJOR_VERSION 5)
0038     set(MAUI_MAJOR_VERSION 3)
0039 
0040     set(MAUIKIT_VERSION 3.1.0)
0041 
0042     set(AKONADI_LIB_VERSION "5.24.2")
0043     set(AKONADICALENDAR_LIB_VERSION "5.24.40")
0044     set(AKONADI_CONTACT_VERSION "5.24.40")
0045     set(AKONADIMIME_LIB_VERSION "5.24.40")
0046     set(CALENDARUTILS_LIB_VERSION "5.24.40")
0047 endif()
0048 
0049 set(CMAKE_CXX_STANDARD 17)
0050 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0051 
0052 set(CMAKE_INCLUDE_CURRENT_DIR ON)
0053 set(CMAKE_AUTOMOC ON)
0054 set(CMAKE_AUTORCC ON)
0055 
0056 set(AUTOMOC_MOC_OPTIONS -Muri=org.mauikit.calendar)
0057 
0058 project(Calendar LANGUAGES CXX VERSION ${MAUIKIT_VERSION})
0059 
0060 find_package(ECM ${REQUIRED_KF_VERSION} REQUIRED NO_MODULE)
0061 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0062 
0063 include(GenerateExportHeader)
0064 include(GNUInstallDirs)
0065 include(FeatureSummary)
0066 include(CMakePackageConfigHelpers)
0067 
0068 include(KDEInstallDirs)
0069 include(KDECMakeSettings)
0070 include(KDECompilerSettings)
0071 include(KDEClangFormat)
0072 include(KDEPackageAppTemplates)
0073 
0074 include(ECMSetupVersion)
0075 include(ECMGenerateQmlTypes)
0076 include(ECMGenerateHeaders)
0077 include(ECMFindQmlModule)
0078 include(ECMQmlModule)
0079 include(ECMSourceVersionControl)
0080 
0081 option(QUICK_COMPILER "Use QtQuick compiler to improve performance. QML sources won't be installed in the file system." ON)
0082 ##option to be removed in qt6 migration
0083 if (QT_MAJOR_VERSION STREQUAL "5")
0084     option(QUICK_COMPILER ON)
0085     if(ANDROID OR WIN32 OR APPLE)
0086         set(QUICK_COMPILER ON)
0087     endif()
0088 else()
0089     option(QUICK_COMPILER OFF)
0090 endif()
0091 
0092 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS
0093     Core
0094     Quick
0095     Qml
0096     QuickControls2
0097     Svg)
0098 
0099 if (QT_MAJOR_VERSION STREQUAL "6")
0100     find_package(Qt6Core5Compat REQUIRED)
0101 endif()
0102 
0103 find_package(KF${KF_MAJOR_VERSION} ${REQUIRED_KF_VERSION} REQUIRED COMPONENTS
0104     I18n
0105     CoreAddons
0106     Config)
0107 
0108 find_package(MauiKit${MAUI_MAJOR_VERSION} ${MAUIKIT_VERSION} REQUIRED)
0109 
0110 if (QT_MAJOR_VERSION STREQUAL "6")
0111 
0112     find_package(KPim${KF_MAJOR_VERSION}Akonadi ${AKONADI_LIB_VERSION} REQUIRED)
0113     find_package(KPim${KF_MAJOR_VERSION}AkonadiCalendar ${AKONADICALENDAR_LIB_VERSION} REQUIRED)
0114     find_package(KPim${KF_MAJOR_VERSION}AkonadiContactCore ${AKONADI_CONTACT_VERSION} REQUIRED)
0115     find_package(KPim${KF_MAJOR_VERSION}AkonadiMime ${AKONADIMIME_LIB_VERSION} REQUIRED)
0116     find_package(KPim${KF_MAJOR_VERSION}CalendarUtils ${CALENDARUTILS_LIB_VERSION} REQUIRED)
0117 else()
0118     find_package(KPim${KF_MAJOR_VERSION}Akonadi ${AKONADI_LIB_VERSION} REQUIRED)
0119     find_package(KPim${KF_MAJOR_VERSION}AkonadiCalendar ${AKONADI_LIB_VERSION} REQUIRED)
0120     find_package(KPim${KF_MAJOR_VERSION}AkonadiContact ${AKONADI_LIB_VERSION} REQUIRED)
0121     find_package(KPim${KF_MAJOR_VERSION}AkonadiMime ${AKONADI_LIB_VERSION} REQUIRED)
0122     find_package(KPim${KF_MAJOR_VERSION}CalendarUtils ${AKONADI_LIB_VERSION} REQUIRED)
0123 endif()
0124 
0125 if (QT_MAJOR_VERSION STREQUAL "5")
0126     if(QUICK_COMPILER)
0127         find_package(Qt5QuickCompiler)
0128         set_package_properties(Qt5QuickCompiler PROPERTIES
0129             DESCRIPTION "Compile QML at build time"
0130             TYPE OPTIONAL)
0131     endif()
0132 endif()
0133 
0134 if(${ECM_SOURCE_UNDER_VERSION_CONTROL})
0135     execute_process(
0136         COMMAND git rev-parse --abbrev-ref HEAD
0137         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0138         OUTPUT_VARIABLE GIT_BRANCH
0139         OUTPUT_STRIP_TRAILING_WHITESPACE)
0140 
0141     # Get the latest abbreviated commit hash of the working branch
0142     execute_process(
0143         COMMAND git log -1 --format=%h
0144         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0145         OUTPUT_VARIABLE GIT_COMMIT_HASH
0146         OUTPUT_STRIP_TRAILING_WHITESPACE)
0147 
0148     add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
0149     add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
0150 
0151 else()
0152     add_definitions(-DGIT_COMMIT_HASH="${PROJECT_VERSION}")
0153     add_definitions(-DGIT_BRANCH="Stable")
0154 endif()
0155 
0156 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/MauiKitCalendar${MAUI_MAJOR_VERSION}")
0157 
0158 ecm_setup_version(${PROJECT_VERSION}
0159     VARIABLE_PREFIX Calendar
0160     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/calendar_version.h"
0161     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/MauiKitCalendar${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0162     SOVERSION ${PROJECT_VERSION_MAJOR})
0163 
0164 configure_package_config_file(
0165     "${CMAKE_CURRENT_SOURCE_DIR}/MauiKitCalendarConfig.cmake.in.${QT_MAJOR_VERSION}"
0166     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitCalendar${MAUI_MAJOR_VERSION}Config.cmake"
0167     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0168     PATH_VARS CMAKE_INSTALL_PREFIX)
0169 
0170 install(FILES
0171     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitCalendar${MAUI_MAJOR_VERSION}ConfigVersion.cmake"
0172     "${CMAKE_CURRENT_BINARY_DIR}/MauiKitCalendar${MAUI_MAJOR_VERSION}Config.cmake"
0173     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0174     COMPONENT Devel)
0175 
0176 install(EXPORT MauiKitCalendar${MAUI_MAJOR_VERSION}Targets
0177     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0178     FILE MauiKitCalendar${MAUI_MAJOR_VERSION}Targets.cmake
0179     NAMESPACE MauiKit${MAUI_MAJOR_VERSION}::)
0180 
0181 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/calendar_version.h"
0182     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/MauiKit${MAUI_MAJOR_VERSION}/Calendar
0183     COMPONENT Devel)
0184 
0185 add_definitions(-DTRANSLATION_DOMAIN="mauikitcalendar")
0186 if(${QT_MAJOR_VERSION} STREQUAL 5) ##for now skip installing translations for mauikit4 to avoid packaging conflicts with translation files
0187     ki18n_install(po)
0188 endif()
0189 
0190 add_subdirectory(src)
0191 
0192 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
0193 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0194 
0195 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)