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

0001 # SPDX-License-Identifier: CC0-1.0
0002 # SPDX-FileCopyrightText: none
0003 # target_include_directories does not handle empty include paths
0004 include_directories(
0005     ${Boost_INCLUDE_DIRS}
0006     ${GPGME_INCLUDES}
0007 )
0008 add_definitions(-DTRANSLATION_DOMAIN=\"libkleopatra6\")
0009 
0010 #add_definitions( -DQT_NO_CAST_FROM_ASCII )
0011 #add_definitions( -DQT_NO_CAST_TO_ASCII )
0012 
0013 kde_enable_exceptions()
0014 
0015 add_definitions( -DGPGMEPP_ERR_SOURCE_DEFAULT=13 ) # 13 is GPG_ERR_SOURCE_KLEO, even if gpg-error's too old to know about
0016 
0017 add_subdirectory( pics )
0018 add_library(KPim6Libkleo)
0019 add_library(KPim6::Libkleo ALIAS KPim6Libkleo)
0020 
0021 ########### next target ###############
0022 target_sources(KPim6Libkleo PRIVATE
0023    kleo/auditlogentry.cpp
0024    kleo/auditlogentry.h
0025    kleo/checksumdefinition.cpp
0026    kleo/checksumdefinition.h
0027    kleo/debug.cpp
0028    kleo/debug.h
0029    kleo/defaultkeyfilter.cpp
0030    kleo/defaultkeyfilter.h
0031    kleo/defaultkeygenerationjob.cpp
0032    kleo/defaultkeygenerationjob.h
0033    kleo/docaction.cpp kleo/docaction.h
0034    kleo/dn.cpp
0035    kleo/dn.h
0036    kleo/enum.cpp
0037    kleo/enum.h
0038    kleo/expirychecker.cpp
0039    kleo/expirychecker.h
0040    kleo/expirycheckerconfig.cpp
0041    kleo/expirycheckerconfig.h
0042    kleo/expirycheckersettings.cpp
0043    kleo/expirycheckersettings.h
0044    kleo/kconfigbasedkeyfilter.cpp
0045    kleo/kconfigbasedkeyfilter.h
0046    kleo/keyfilter.h
0047    kleo/keyfiltermanager.cpp
0048    kleo/keyfiltermanager.h
0049    kleo/keygroup.cpp
0050    kleo/keygroup.h
0051    kleo/keygroupconfig.cpp
0052    kleo/keygroupconfig.h
0053    kleo/keygroupimportexport.cpp
0054    kleo/keygroupimportexport.h
0055    kleo/keyresolver.cpp
0056    kleo/keyresolver.h
0057    kleo/keyresolvercore.cpp
0058    kleo/keyresolvercore.h
0059    kleo/keyserverconfig.cpp
0060    kleo/keyserverconfig.h
0061    kleo/kleoexception.cpp
0062    kleo/kleoexception.h
0063    kleo/oidmap.cpp
0064    kleo/oidmap.h
0065    kleo/predicates.h
0066    kleo/stl_util.h
0067    models/keycache.cpp
0068    models/keycache.h
0069    models/keycache_p.h
0070    models/keylist.h
0071    models/keylistmodel.cpp
0072    models/keylistmodel.h
0073    models/keylistmodelinterface.cpp
0074    models/keylistmodelinterface.h
0075    models/keylistsortfilterproxymodel.cpp
0076    models/keylistsortfilterproxymodel.h
0077    models/keyrearrangecolumnsproxymodel.cpp
0078    models/keyrearrangecolumnsproxymodel.h
0079    models/subkeylistmodel.cpp
0080    models/subkeylistmodel.h
0081    models/useridlistmodel.cpp
0082    models/useridlistmodel.h
0083    models/useridproxymodel.cpp
0084    models/useridproxymodel.h
0085    utils/algorithm.h
0086    utils/assuan.cpp
0087    utils/assuan.h
0088    utils/chrono.h
0089    utils/classify.cpp
0090    utils/classify.h
0091    utils/compat.cpp
0092    utils/compat.h
0093    utils/compliance.cpp
0094    utils/compliance.h
0095    utils/cryptoconfig.cpp
0096    utils/cryptoconfig.h
0097    utils/cryptoconfig_p.h
0098    utils/filesystemwatcher.cpp
0099    utils/filesystemwatcher.h
0100    utils/formatting.cpp
0101    utils/formatting.h
0102    utils/gnupg-registry.c
0103    utils/gnupg-registry.h
0104    utils/gnupg.cpp
0105    utils/gnupg.h
0106    utils/hex.cpp
0107    utils/hex.h
0108    utils/keyhelpers.cpp
0109    utils/keyhelpers.h
0110    utils/keyusage.h
0111    utils/qtstlhelpers.cpp
0112    utils/qtstlhelpers.h
0113    utils/scdaemon.cpp
0114    utils/scdaemon.h
0115    utils/stringutils.cpp
0116    utils/stringutils.h
0117    utils/systeminfo.cpp
0118    utils/systeminfo.h
0119    utils/test.cpp
0120    utils/test.h
0121    utils/uniquelock.cpp
0122    utils/uniquelock.h
0123    )
0124 ecm_qt_declare_logging_category(KPim6Libkleo HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo
0125         DESCRIPTION "libkleo (kleo_core)"
0126         EXPORT LIBKLEO
0127     )
0128 
0129 
0130 target_sources(KPim6Libkleo PRIVATE
0131    ui/adjustingscrollarea.cpp
0132    ui/adjustingscrollarea.h
0133    ui/auditlogviewer.cpp
0134    ui/auditlogviewer.h
0135    ui/cryptoconfigentryreaderport.cpp
0136    ui/cryptoconfigentryreaderport_p.h
0137    ui/cryptoconfigmodule.cpp
0138    ui/cryptoconfigmodule.h
0139    ui/cryptoconfigmodule_p.h
0140    ui/directoryserviceswidget.cpp
0141    ui/directoryserviceswidget.h
0142    ui/dnattributeorderconfigwidget.cpp
0143    ui/dnattributeorderconfigwidget.h
0144    ui/editdirectoryservicedialog.cpp
0145    ui/editdirectoryservicedialog.h
0146    ui/filenamerequester.cpp
0147    ui/filenamerequester.h
0148    ui/messagebox.cpp
0149    ui/messagebox.h
0150    ui/treeview.cpp
0151    ui/treeview.h
0152    ui/treewidget.cpp
0153    ui/treewidget.h
0154    ui/progressbar.cpp
0155    ui/progressbar.h
0156    ui/progressdialog.cpp
0157    ui/progressdialog.h
0158    ui/readerportselection.cpp
0159    ui/readerportselection.h
0160 )
0161 
0162 ecm_qt_declare_logging_category(KPim6Libkleo HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui
0163         DESCRIPTION "libkleo (kleo_ui)"
0164         OLD_CATEGORY_NAMES log_kleo_ui
0165         EXPORT LIBKLEO
0166     )
0167 
0168 
0169 target_sources(KPim6Libkleo PRIVATE    # make this a separate lib.
0170     ui/keyapprovaldialog.cpp
0171     ui/keyapprovaldialog.h
0172     ui/keylistview.cpp
0173     ui/keylistview.h
0174     ui/keyrequester.cpp
0175     ui/keyrequester.h
0176     ui/keyselectioncombo.cpp
0177     ui/keyselectioncombo.h
0178     ui/keyselectiondialog.cpp
0179     ui/keyselectiondialog.h
0180     ui/newkeyapprovaldialog.cpp
0181     ui/newkeyapprovaldialog.h
0182     ui/useridselectioncombo.cpp
0183     ui/useridselectioncombo.h
0184     )
0185 
0186 if(MINGW)
0187     # we do not care about different signedness of passed pointer arguments
0188     set_source_files_properties(utils/gnupg-registry.c PROPERTIES COMPILE_OPTIONS "-Wno-pointer-sign")
0189 endif()
0190 
0191 target_link_libraries(KPim6Libkleo PUBLIC Gpgmepp PRIVATE Qt::Widgets
0192                                                 KF6::I18n
0193                                                 KF6::Completion
0194                                                 KF6::ConfigCore
0195                                                 KF6::ColorScheme
0196                                                 KF6::ConfigGui
0197                                                 KF6::CoreAddons
0198                                                 KF6::WidgetsAddons
0199                                                 KF6::ItemModels
0200                                                 KF6::Codecs
0201                                                 LibGpgError::LibGpgError)
0202 
0203 target_link_libraries(KPim6Libkleo PUBLIC QGpgmeQt6)
0204 # Boost::headers may not be available for old versions of Boost
0205 if (TARGET Boost::headers)
0206   target_link_libraries(KPim6Libkleo PRIVATE Boost::headers)
0207 endif()
0208 
0209 if (TARGET KF6::TextCustomEditor)
0210   add_definitions(-DHAVE_PIMTEXTEDIT)
0211   target_link_libraries(KPim6Libkleo PRIVATE KF6::TextCustomEditor)
0212 endif()
0213 
0214 if (COMPILE_WITH_UNITY_CMAKE_SUPPORT)
0215     set_target_properties(KPim6Libkleo PROPERTIES UNITY_BUILD ON)
0216 endif()
0217 
0218 ecm_generate_export_header(KPim6Libkleo
0219     BASE_NAME kleo
0220     VERSION ${PIM_VERSION}
0221     DEPRECATED_BASE_VERSION 0
0222     DEPRECATION_VERSIONS 5.23
0223 )
0224 
0225 if(WIN32)
0226     target_link_libraries(KPim6Libkleo ${GPGME_VANILLA_LIBRARIES} )
0227 endif()
0228 
0229 set_target_properties(KPim6Libkleo PROPERTIES
0230     VERSION ${LIBKLEO_VERSION}
0231     SOVERSION ${LIBKLEO_SOVERSION}
0232     EXPORT_NAME Libkleo
0233 )
0234 
0235 install(TARGETS
0236     KPim6Libkleo
0237     EXPORT KPim6LibkleoTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
0238 )
0239 
0240 target_include_directories(KPim6Libkleo INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/KPim6/Libkleo>")
0241 target_include_directories(KPim6Libkleo PUBLIC "$<BUILD_INTERFACE:${libkleo_SOURCE_DIR}/src;${libkleo_BINARY_DIR}/src>")
0242 
0243 ecm_generate_headers(libkleo_CamelCase_HEADERS
0244   HEADER_NAMES
0245   AuditLogEntry
0246   ChecksumDefinition
0247   Debug
0248   DefaultKeyFilter
0249   DefaultKeyGenerationJob
0250   DocAction
0251   Dn
0252   Enum
0253   ExpiryChecker
0254   ExpiryCheckerConfig
0255   ExpiryCheckerSettings
0256   KConfigBasedKeyFilter
0257   KeyFilter
0258   KeyFilterManager
0259   KeyGroup
0260   KeyGroupConfig
0261   KeyGroupImportExport
0262   KeyResolver
0263   KeyResolverCore
0264   KeyserverConfig
0265   KleoException
0266   OidMap
0267   Predicates
0268   Stl_Util
0269   REQUIRED_HEADERS libkleo_HEADERS
0270   PREFIX Libkleo
0271   RELATIVE kleo
0272 )
0273 
0274 ecm_generate_headers(libkleo_CamelCase_models_HEADERS
0275   HEADER_NAMES
0276   KeyCache
0277   KeyList
0278   KeyListModel
0279   KeyListModelInterface
0280   KeyListSortFilterProxyModel
0281   KeyRearrangeColumnsProxyModel
0282   SubkeyListModel
0283   UserIDListModel
0284   UserIDProxyModel
0285   REQUIRED_HEADERS libkleo_models_HEADERS
0286   PREFIX Libkleo
0287   RELATIVE models
0288 )
0289 
0290 ecm_generate_headers(libkleo_CamelCase_utils_HEADERS
0291   HEADER_NAMES
0292   Algorithm
0293   Assuan
0294   Chrono
0295   Classify
0296   Compat
0297   Compliance
0298   CryptoConfig
0299   FileSystemWatcher
0300   Formatting
0301   GnuPG
0302   Hex
0303   KeyHelpers
0304   KeyUsage
0305   QtStlHelpers
0306   SCDaemon
0307   StringUtils
0308   SystemInfo
0309   Test
0310   UniqueLock
0311   REQUIRED_HEADERS libkleo_utils_HEADERS
0312   PREFIX Libkleo
0313   RELATIVE utils
0314 )
0315 
0316 ecm_generate_headers(libkleo_CamelCase_ui_HEADERS
0317   HEADER_NAMES
0318   AdjustingScrollArea
0319   AuditLogViewer
0320   CryptoConfigModule
0321   DNAttributeOrderConfigWidget
0322   DirectoryServicesWidget
0323   EditDirectoryServiceDialog
0324   FileNameRequester
0325   KeyApprovalDialog
0326   KeyListView
0327   KeyRequester
0328   KeySelectionCombo
0329   KeySelectionDialog
0330   MessageBox
0331   TreeView
0332   TreeWidget
0333   NewKeyApprovalDialog
0334   ProgressDialog
0335   ReaderPortSelection
0336   UserIDSelectionCombo
0337   REQUIRED_HEADERS libkleo_ui_HEADERS
0338   PREFIX Libkleo
0339   RELATIVE ui
0340 )
0341 
0342 kconfig_add_kcfg_files(KPim6Libkleo
0343   kcfg/expirycheckerconfigbase.kcfgc
0344   kcfg/classifyconfig.kcfgc
0345 )
0346 
0347 install(FILES
0348     ${libkleo_CamelCase_HEADERS}
0349     ${libkleo_CamelCase_models_HEADERS}
0350     ${libkleo_CamelCase_ui_HEADERS}
0351     ${libkleo_CamelCase_utils_HEADERS}
0352     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/Libkleo/Libkleo
0353     COMPONENT Devel
0354 )
0355 
0356 install(FILES
0357     ${CMAKE_CURRENT_BINARY_DIR}/expirycheckerconfigbase.h
0358     ${CMAKE_CURRENT_BINARY_DIR}/kleo_export.h
0359     ${libkleo_HEADERS}
0360     ${libkleo_models_HEADERS}
0361     ${libkleo_ui_HEADERS}
0362     ${libkleo_utils_HEADERS}
0363     ${CMAKE_CURRENT_BINARY_DIR}/classifyconfig.h
0364     DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/Libkleo/libkleo
0365     COMPONENT Devel
0366 )
0367 
0368 if ( WIN32 )
0369     install ( FILES libkleopatrarc-win32.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc )
0370 else ()
0371     install ( FILES libkleopatrarc.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc )
0372 endif ()
0373 
0374 if (BUILD_QCH)
0375     ecm_add_qch(
0376         KPim6Libkleo_QCH
0377         NAME KPim6Libkleo
0378         BASE_NAME KPim6Libkleo
0379         VERSION ${PIM_VERSION}
0380         ORG_DOMAIN org.kde
0381         SOURCES # using only public headers, to cover only public API
0382         ${libkleo_HEADERS}
0383         ${libkleo_models_HEADERS}
0384         ${libkleo_ui_HEADERS}
0385         ${libkleo_utils_HEADERS}
0386         #MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0387         #IMAGE_DIRS "${CMAKE_SOURCE_DIR}/docs/pics"
0388         LINK_QCHS
0389             Qt6Core_QCH
0390             Qt6Gui_QCH
0391             Qt6Widgets_QCH
0392         INCLUDE_DIRS
0393             ${CMAKE_CURRENT_BINARY_DIR}
0394         BLANK_MACROS
0395             KLEO_EXPORT
0396         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0397         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0398         COMPONENT Devel
0399     )
0400 endif()