Warning, /pim/libksieve/src/ksievecore/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 
0004 ecm_setup_version(PROJECT VARIABLE_PREFIX LIBKSIEVECORE
0005                         VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/libksievecore_version.h"
0006                         PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6KSieveCoreConfigVersion.cmake"
0007                         SOVERSION 6
0008 )
0009 
0010 add_library(KPim6KSieveCore)
0011 add_library(KPim6::KSieveCore ALIAS KPim6KSieveCore)
0012 
0013 target_sources(KPim6KSieveCore PRIVATE
0014     sieveimapinstance/sieveimapinstance.cpp
0015     sieveimapinstance/sieveimapinstance.h
0016     sieveimapinstance/sieveimapinstanceinterface.cpp
0017     sieveimapinstance/sieveimapinstanceinterface.h
0018     sieveimapinstance/sieveimapinstanceinterfacemanager.cpp
0019     sieveimapinstance/sieveimapinstanceinterfacemanager.h
0020 )
0021 
0022 target_sources(KPim6KSieveCore PRIVATE
0023     managescriptsjob/checkkolabkep14supportjob.cpp
0024     managescriptsjob/checkkolabkep14supportjob.h
0025     managescriptsjob/generateglobalscriptjob.cpp
0026     managescriptsjob/generateglobalscriptjob.h
0027     managescriptsjob/parseuserscriptjob.cpp
0028     managescriptsjob/parseuserscriptjob.h
0029     managescriptsjob/renamescriptjob.cpp
0030     managescriptsjob/renamescriptjob.h
0031     managescriptsjob/checkscriptjob.cpp
0032     managescriptsjob/checkscriptjob.h
0033 )
0034 
0035 target_sources(KPim6KSieveCore PRIVATE
0036     util/util.cpp
0037     util/util.h
0038     util/abstractakonadiimapsettinginterface.cpp
0039     util/abstractakonadiimapsettinginterface.h
0040     util/akonadiimapsettinginterface.cpp
0041     util/akonadiimapsettinginterface.h
0042     util/sieveimapaccountsettings.cpp
0043     util/sieveimapaccountsettings.h
0044     util/findaccountinfojob.cpp
0045     util/findaccountinfojob.h
0046     util/sieveimappasswordprovider.cpp
0047     util/sieveimappasswordprovider.h
0048 )
0049 
0050 target_sources(KPim6KSieveCore PRIVATE
0051     scriptsparsing/xmlprintingscriptbuilder.cpp
0052     scriptsparsing/xmlprintingscriptbuilder.h
0053     scriptsparsing/parsingutil.cpp
0054     scriptsparsing/parsingutil.h
0055 )
0056 
0057 target_sources(KPim6KSieveCore PRIVATE
0058     vacation/vacationhelperjob.cpp
0059     vacation/vacationhelperjob.h
0060     vacation/vacationscriptextractor.cpp
0061     vacation/vacationscriptextractor.h
0062     vacation/vacationutils.cpp
0063     vacation/vacationutils.h
0064     vacation/vacationcreatescriptjob.cpp
0065     vacation/vacationcreatescriptjob.h
0066     vacation/vacationcheckjob.cpp
0067     vacation/vacationcheckjob.h
0068     vacation/searchserverwithvacationsupportjob.cpp
0069     vacation/searchserverwithvacationsupportjob.h
0070     vacation/multiimapvacationmanager.h
0071     vacation/multiimapvacationmanager.cpp
0072 )
0073 
0074 ecm_qt_declare_logging_category(KPim6KSieveCore HEADER libksievecore_debug.h IDENTIFIER LIBKSIEVECORE_LOG CATEGORY_NAME org.kde.pim.libksieve.core
0075     DESCRIPTION "kdepim (libksievecore)"
0076     EXPORT LIBKSIEVE
0077 )
0078 kconfig_add_kcfg_files(KPim6KSieveCore settings/sieve-vacation.kcfgc)
0079 
0080 
0081 target_link_libraries(KPim6KSieveCore
0082     PUBLIC
0083     Qt::Core
0084     KPim6::KManageSieve
0085     KPim6::KSieve
0086     PRIVATE
0087     KPim6::PimCommon
0088     KF6::I18n
0089     KF6::CoreAddons
0090     KPim6::MailTransport
0091     KPim6::Mime
0092     KPim6::IdentityManagementCore
0093 )
0094 
0095 generate_export_header(KPim6KSieveCore BASE_NAME ksievecore)
0096 if (COMPILE_WITH_UNITY_CMAKE_SUPPORT)
0097     set_target_properties(KPim6KSieveCore PROPERTIES UNITY_BUILD ON)
0098 endif()
0099 
0100 
0101 set_target_properties(KPim6KSieveCore PROPERTIES
0102     VERSION ${LIBKSIEVECORE_VERSION}
0103     SOVERSION ${LIBKSIEVECORE_SOVERSION}
0104     EXPORT_NAME KSieveCore
0105 )
0106 
0107 target_include_directories(KPim6KSieveCore
0108     INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/KPim6/KSieveCore/;${KDE_INSTALL_INCLUDEDIR}/KPim6/KSieveCore>")
0109 target_include_directories(KPim6KSieveCore PUBLIC "$<BUILD_INTERFACE:${libksieve_SOURCE_DIR}/src/ksievecore;${libksieve_BINARY_DIR}/src/ksievecore>")
0110 
0111 if(BUILD_TESTING)
0112     add_subdirectory(sieveimapinstance/autotests)
0113     add_subdirectory(managescriptsjob/autotests)
0114     add_subdirectory(util/autotests/)
0115     add_subdirectory(scriptsparsing/autotests)
0116     add_subdirectory(vacation/autotests)
0117 endif()
0118 
0119 ecm_generate_headers(ksievecore_Camelcaseimapinstance_HEADERS
0120     HEADER_NAMES
0121     SieveImapInstance
0122     SieveImapInstanceInterface
0123     SieveImapInstanceInterfaceManager
0124     REQUIRED_HEADERS ksievecore_imapinstance_HEADERS
0125     PREFIX KSieveCore
0126     RELATIVE sieveimapinstance
0127 )
0128 
0129 ecm_generate_headers(ksievecore_Camelmanagescriptsjob_HEADERS
0130     HEADER_NAMES
0131     RenameScriptJob
0132     CheckScriptJob
0133     REQUIRED_HEADERS ksievecore_managescriptsjob_HEADERS
0134     PREFIX KSieveCore
0135     RELATIVE managescriptsjob
0136 )
0137 
0138 ecm_generate_headers(ksievecore_Camelcaseutil_HEADERS
0139     HEADER_NAMES
0140     Util
0141     SieveImapAccountSettings
0142     SieveImapPasswordProvider
0143     REQUIRED_HEADERS ksievecore_util_HEADERS
0144     PREFIX KSieveCore
0145     RELATIVE util
0146 )
0147 
0148 ecm_generate_headers(ksievecore_Camelcasescriptsparsing_HEADERS
0149     HEADER_NAMES
0150     XMLPrintingScriptBuilder
0151     ParsingUtil
0152     REQUIRED_HEADERS ksievecore_scriptsparsing_HEADERS
0153     PREFIX KSieveCore
0154     RELATIVE scriptsparsing
0155 )
0156 
0157 ecm_generate_headers(ksievecore_Camelcasevacation_HEADERS
0158     HEADER_NAMES
0159     SearchServerWithVacationSupportJob
0160     VacationUtils
0161     VacationCreateScriptJob
0162     VacationCheckJob
0163     MultiImapVacationManager
0164     REQUIRED_HEADERS ksievecore_vacation_HEADERS
0165     PREFIX KSieveCore
0166     RELATIVE vacation
0167 )
0168 
0169 install(TARGETS KPim6KSieveCore EXPORT KPim6KSieveCoreTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0170 install(FILES
0171     ${ksievecore_Camelcaseimapinstance_HEADERS}
0172     ${ksievecore_Camelmanagescriptsjob_HEADERS}
0173     ${ksievecore_Camelcaseutil_HEADERS}
0174     ${ksievecore_Camelcasescriptsparsing_HEADERS}
0175     ${ksievecore_Camelcasevacation_HEADERS}
0176 
0177     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/KSieveCore/KSieveCore
0178     COMPONENT Devel
0179 )
0180 
0181 install(FILES
0182     ${CMAKE_CURRENT_BINARY_DIR}/ksievecore_export.h
0183     ${ksievecore_imapinstance_HEADERS}
0184     ${ksievecore_managescriptsjob_HEADERS}
0185     ${ksievecore_util_HEADERS}
0186     ${ksievecore_scriptsparsing_HEADERS}
0187     ${ksievecore_vacation_HEADERS}
0188 
0189     ${CMAKE_CURRENT_BINARY_DIR}/sieve-vacation.h
0190     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/KSieveCore/ksievecore
0191     COMPONENT Devel
0192 )
0193 
0194 install(FILES
0195     ${CMAKE_CURRENT_BINARY_DIR}/libksievecore_version.h
0196     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/KSieveCore COMPONENT Devel
0197     )
0198 
0199 
0200 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6KSieveCore")
0201 if (BUILD_QCH)
0202     ecm_add_qch(
0203         KPim6KSieveCore_QCH
0204         NAME KPim6KSieveCore
0205         BASE_NAME KPim6KSieveCore
0206         VERSION ${PIM_VERSION}
0207         ORG_DOMAIN org.kde
0208         SOURCES # using only public headers, to cover only public API
0209         ${ksievecore_imapinstance_HEADERS}
0210         ${ksievecore_managescriptsjob_HEADERS}
0211         ${ksievecore_util_HEADERS}
0212         ${ksievecore_scriptsparsing_HEADERS}
0213         ${ksievecore_vacation_HEADERS}
0214         LINK_QCHS
0215         Qt6Core_QCH
0216         INCLUDE_DIRS
0217         ${CMAKE_CURRENT_BINARY_DIR}
0218         BLANK_MACROS
0219         KSIEVECORE_EXPORT
0220         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0221         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0222         COMPONENT Devel
0223     )
0224 endif()
0225 
0226 
0227 
0228 if (BUILD_QCH)
0229     ecm_install_qch_export(
0230         TARGETS KPim6KSieveCore_QCH
0231         FILE KPim6KSieveCoreQchTargets.cmake
0232         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0233         COMPONENT Devel
0234     )
0235 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KPim6KSieveCoreQchTargets.cmake\")")
0236 endif()
0237 
0238 configure_package_config_file(
0239     "${CMAKE_CURRENT_SOURCE_DIR}/KPimKSieveCoreConfig.cmake.in"
0240     "${CMAKE_CURRENT_BINARY_DIR}/KPim6KSieveCoreConfig.cmake"
0241     INSTALL_DESTINATION  ${CMAKECONFIG_INSTALL_DIR}
0242 )
0243 
0244 install(FILES
0245     "${CMAKE_CURRENT_BINARY_DIR}/KPim6KSieveCoreConfig.cmake"
0246     "${CMAKE_CURRENT_BINARY_DIR}/KPim6KSieveCoreConfigVersion.cmake"
0247     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0248     COMPONENT Devel
0249 )
0250 
0251 install(EXPORT KPim6KSieveCoreTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPim6KSieveCoreTargets.cmake NAMESPACE KPim6::)