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