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)