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