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