Warning, /pim/kitinerary/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0002 # SPDX-FileCopyrightText: 2018-2020 Volker Krause <vkrause@kde.org> 0003 # SPDX-License-Identifier: BSD-3-Clause 0004 0005 cmake_minimum_required(VERSION 3.16 FATAL_ERROR) 0006 set(PIM_VERSION "6.0.0") 0007 project(KItinerary VERSION ${PIM_VERSION}) 0008 0009 set(QT_REQUIRED_VERSION "6.6.0") 0010 set(KF_MIN_VERSION "5.246.0") 0011 0012 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 0013 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) 0014 set(CMAKE_CXX_STANDARD 20) 0015 0016 include(KDECompilerSettings NO_POLICY_SCOPE) 0017 include(ECMAddTests) 0018 include(ECMGenerateHeaders) 0019 include(ECMQtDeclareLoggingCategory) 0020 include(ECMDeprecationSettings) 0021 include(ECMSetupVersion) 0022 include(FeatureSummary) 0023 include(KDEInstallDirs) 0024 include(KDECMakeSettings) 0025 include(GenerateExportHeader) 0026 include(ECMAddQch) 0027 0028 0029 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0030 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0031 0032 0033 ecm_setup_version(PROJECT VARIABLE_PREFIX KITINERARY 0034 VERSION_HEADER kitinerary_version.h 0035 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6ItineraryConfigVersion.cmake" 0036 SOVERSION 6 0037 ) 0038 0039 find_package(Qt6 ${QT_REQUIRED_VERSION} REQUIRED COMPONENTS Gui Qml) 0040 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Contacts CalendarCore I18n) 0041 if (NOT ANDROID) 0042 find_package(SharedMimeInfo 1.3 REQUIRED) 0043 endif() 0044 0045 set(KMIME_VERSION "6.0.0") 0046 set(PIM_PKPASS "6.0.0") 0047 0048 find_package(KPim6Mime ${KMIME_VERSION} CONFIG REQUIRED) 0049 find_package(KPim6PkPass ${PIM_PKPASS} CONFIG REQUIRED) 0050 find_package(Poppler COMPONENTS Core) 0051 set_package_properties("Poppler" PROPERTIES TYPE REQUIRED PURPOSE "Support for extraction from PDF booking confirmations.") 0052 find_package(ZXing 2.0 CONFIG) 0053 if (NOT TARGET ZXing::ZXing) 0054 find_package(ZXing 1.1.1 CONFIG) 0055 endif() 0056 set_package_properties("ZXing" PROPERTIES TYPE REQUIRED PURPOSE "Support for barcode decoding." URL "https://github.com/nu-book/zxing-cpp") 0057 find_package(ZLIB REQUIRED) 0058 set_package_properties("ZLIB" PROPERTIES PURPOSE "Support for decoding UIC 918-3 train tickets.") 0059 find_package(LibXml2 MODULE) 0060 set_package_properties("LibXml2" PROPERTIES PURPOSE "Support for extraction from HTML booking confirmations." URL "http://libxml.org") 0061 find_package(PhoneNumber OPTIONAL_COMPONENTS PhoneNumber QUIET) 0062 set_package_properties("PhoneNumber" PROPERTIES PURPOSE "Parsing and geo-coding of phone numbers.") 0063 find_package(OpenSSL 1.1 REQUIRED COMPONENTS Crypto) 0064 find_package(OsmTools) 0065 set_package_properties(OsmTools PROPERTIES TYPE OPTIONAL PURPOSE "Needed only for regenereating the airport database (ie. you most likely don't need this)") 0066 0067 if (NOT ANDROID) 0068 set_package_properties(KF6CalendarCore PROPERTIES TYPE REQUIRED) 0069 set_package_properties(LibXml2 PROPERTIES TYPE REQUIRED) 0070 endif() 0071 0072 if(TARGET Poppler::Core) 0073 # check if we have private Poppler headers 0074 find_file(HAVE_POPPLER_UNSTABLE_HEADERS "OutputDev.h" PATHS ${Poppler_INCLUDE_DIRS} NO_DEFAULT_PATH) 0075 if (NOT HAVE_POPPLER_UNSTABLE_HEADERS) 0076 message(FATAL_ERROR "Poppler was not build with ENABLE_UNSTABLE_API_ABI_HEADERS!") 0077 endif() 0078 endif() 0079 string(REGEX MATCH "([0-9]+)\.0*([0-9]+)\.0*([0-9]+)" _match ${Poppler_VERSION}) 0080 set(POPPLER_VERSION_MAJOR ${CMAKE_MATCH_1}) 0081 set(POPPLER_VERSION_MINOR ${CMAKE_MATCH_2}) 0082 set(POPPLER_VERSION_PATCH ${CMAKE_MATCH_3}) 0083 0084 if (LIBXML2_FOUND) 0085 set(HAVE_LIBXML2 ON) 0086 endif() 0087 if (TARGET PhoneNumber::PhoneNumber) 0088 set(HAVE_PHONENUMBER ON) 0089 endif() 0090 0091 add_definitions(-DTRANSLATION_DOMAIN=\"kitinerary6\") 0092 0093 add_definitions(-DQT_NO_CONTEXTLESS_CONNECT) 0094 ecm_set_disabled_deprecation_versions(QT 6.6.0 KF 5.248.0) 0095 0096 0097 0098 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6Itinerary") 0099 set(KITINERARY_KF6_COMPAT FALSE) 0100 set(KDE_INSTALL_INCLUDEDIR_PIM ${KDE_INSTALL_INCLUDEDIR}/KPim6) 0101 0102 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) 0103 0104 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) 0105 if (USE_UNITY_CMAKE_SUPPORT) 0106 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON) 0107 endif() 0108 0109 add_subdirectory(src) 0110 if(BUILD_TESTING) 0111 add_subdirectory(autotests) 0112 endif() 0113 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) 0114 if (BUILD_QCH) 0115 ecm_install_qch_export( 0116 TARGETS KPim6Itinerary_QCH 0117 FILE KPim6ItineraryQchTargets.cmake 0118 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0119 COMPONENT Devel 0120 ) 0121 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim6ItineraryQchTargets.cmake\")") 0122 endif() 0123 0124 configure_package_config_file( 0125 "${CMAKE_CURRENT_SOURCE_DIR}/KPimItineraryConfig.cmake.in" 0126 "${CMAKE_CURRENT_BINARY_DIR}/KPim6ItineraryConfig.cmake" 0127 INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0128 ) 0129 0130 install(FILES 0131 "${CMAKE_CURRENT_BINARY_DIR}/KPim6ItineraryConfig.cmake" 0132 "${CMAKE_CURRENT_BINARY_DIR}/KPim6ItineraryConfigVersion.cmake" 0133 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0134 COMPONENT Devel) 0135 0136 install(EXPORT KPim6ItineraryTargets 0137 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0138 FILE KPim6ItineraryTargets.cmake 0139 NAMESPACE KPim6:: 0140 ) 0141 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kitinerary_version.h 0142 DESTINATION ${KDE_INSTALL_INCLUDEDIR_PIM} COMPONENT Devel) 0143 0144 ki18n_install(po) 0145