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