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

0001 add_library(KF6Codecs)
0002 add_library(KF6::Codecs ALIAS KF6Codecs)
0003 
0004 set_target_properties(KF6Codecs PROPERTIES
0005     VERSION     ${KCODECS_VERSION}
0006     SOVERSION   ${KCODECS_SOVERSION}
0007     EXPORT_NAME Codecs
0008 # gperf < 3.1 always adds a "register" keyword to function arguments,
0009 # which itself is removed from C++17,
0010 # so sources including the generated header need to use C++14 only.
0011 # Only kcharsets.cpp is affected, but right now nothing else needs C++17,
0012 # so simply set standard for the while library
0013 # Current version of FindGperf in ECM does not support a version check yet,
0014 # so for now always lower to C++14.
0015     CXX_STANDARD 14
0016 )
0017 
0018 ecm_create_qm_loader(KF6Codecs kcodecs6_qt)
0019 
0020 ecm_gperf_generate(kentities.gperf ${CMAKE_CURRENT_BINARY_DIR}/kentities.h KF6Codecs
0021                    GENERATION_FLAGS "--key-positions=* -D -s 2")
0022 
0023 target_sources(KF6Codecs PRIVATE
0024     kcharsets.cpp
0025     kcharsets.h
0026     kcodecsbase45.cpp
0027     kcodecsbase64.cpp
0028     kcodecsbase64.h
0029     kcodecs.cpp
0030     kcodecs.h
0031     kcodecs_p.h
0032     kcodecsqp.cpp
0033     kcodecsqp.h
0034     kcodecsuuencode.cpp
0035     kcodecsuuencode.h
0036     kemailaddress.cpp
0037     kemailaddress.h
0038     kencodingprober.cpp
0039     kencodingprober.h
0040     probers/CharDistribution.cpp
0041     probers/CharDistribution.h
0042     probers/ChineseGroupProber.cpp
0043     probers/ChineseGroupProber.h
0044     probers/JapaneseGroupProber.cpp
0045     probers/JapaneseGroupProber.h
0046     probers/JpCntx.cpp
0047     probers/JpCntx.h
0048     probers/LangBulgarianModel.cpp
0049     probers/LangCyrillicModel.cpp
0050     probers/LangGreekModel.cpp
0051     probers/LangHebrewModel.cpp
0052     probers/LangHungarianModel.cpp
0053     probers/LangThaiModel.cpp
0054     probers/nsBig5Prober.cpp
0055     probers/nsBig5Prober.h
0056     probers/nsCharSetProber.cpp
0057     probers/nsCharSetProber.h
0058     probers/nsCodingStateMachine.h
0059     probers/nsEscCharsetProber.cpp
0060     probers/nsEscCharsetProber.h
0061     probers/nsEscSM.cpp
0062     probers/nsEUCJPProber.cpp
0063     probers/nsEUCJPProber.h
0064     probers/nsEUCKRProber.cpp
0065     probers/nsEUCKRProber.h
0066     probers/nsGB2312Prober.cpp
0067     probers/nsGB2312Prober.h
0068     probers/nsHebrewProber.cpp
0069     probers/nsHebrewProber.h
0070     probers/nsLatin1Prober.cpp
0071     probers/nsLatin1Prober.h
0072     probers/nsMBCSGroupProber.cpp
0073     probers/nsMBCSGroupProber.h
0074     probers/nsMBCSSM.cpp
0075     probers/nsPkgInt.h
0076     probers/nsSBCharSetProber.cpp
0077     probers/nsSBCharSetProber.h
0078     probers/nsSBCSGroupProber.cpp
0079     probers/nsSBCSGroupProber.h
0080     probers/nsSJISProber.cpp
0081     probers/nsSJISProber.h
0082     probers/nsUniversalDetector.cpp
0083     probers/nsUniversalDetector.h
0084     probers/UnicodeGroupProber.cpp
0085     probers/UnicodeGroupProber.h
0086 )
0087 
0088 ecm_qt_declare_logging_category(KF6Codecs
0089     HEADER kcodecs_debug.h
0090     IDENTIFIER KCODECS_LOG
0091     CATEGORY_NAME kf.codecs
0092     OLD_CATEGORY_NAMES kf5.kcodecs
0093     DESCRIPTION "KCodecs"
0094     EXPORT KCODECS
0095 )
0096 
0097 ecm_generate_export_header(KF6Codecs
0098     BASE_NAME KCodecs
0099     GROUP_BASE_NAME KF
0100     VERSION ${KF_VERSION}
0101     USE_VERSION_HEADER
0102     DEPRECATED_BASE_VERSION 0
0103     DEPRECATION_VERSIONS
0104     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0105 )
0106 
0107 target_include_directories(KF6Codecs INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KCodecs>")
0108 
0109 target_link_libraries(KF6Codecs PUBLIC Qt6::Core)
0110 
0111 ecm_generate_headers(KCodecs_HEADERS
0112   HEADER_NAMES
0113   KCharsets
0114   KCodecs
0115   KEncodingProber
0116   KEmailAddress
0117   REQUIRED_HEADERS KCodecs_HEADERS
0118 )
0119 
0120 install(TARGETS KF6Codecs EXPORT KF6CodecsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0121 
0122 install(FILES
0123   ${CMAKE_CURRENT_BINARY_DIR}/kcodecs_export.h
0124   ${KCodecs_HEADERS}
0125   DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KCodecs COMPONENT Devel
0126 )
0127 
0128 ecm_qt_install_logging_categories(
0129     EXPORT KCODECS
0130     FILE kcodecs.categories
0131     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0132 )
0133 
0134 if(BUILD_QCH)
0135     ecm_add_qch(
0136         KF6Codecs_QCH
0137         NAME KCodecs
0138         BASE_NAME KF6Codecs
0139         VERSION ${KF_VERSION}
0140         ORG_DOMAIN org.kde
0141         SOURCES # using only public headers, to cover only public API
0142             ${KCodecs_HEADERS}
0143         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0144         LINK_QCHS
0145             Qt6Core_QCH
0146         INCLUDE_DIRS
0147             ${CMAKE_CURRENT_BINARY_DIR}
0148         BLANK_MACROS
0149             KCODECS_EXPORT
0150             KCODECS_DEPRECATED
0151             KCODECS_DEPRECATED_EXPORT
0152             "KCODECS_DEPRECATED_VERSION(x, y, t)"
0153         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0154         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0155         COMPONENT Devel
0156     )
0157 endif()
0158