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

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