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)