Warning, /frameworks/karchive/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 set(KF_VERSION "6.0.0") # handled by release scripts 0004 project(KArchive VERSION ${KF_VERSION}) 0005 0006 include(FeatureSummary) 0007 find_package(ECM 5.249.0 NO_MODULE) 0008 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") 0009 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) 0010 0011 option(WITH_BZIP2 "Make bzip2 required" ON) 0012 option(WITH_LIBLZMA "Make liblzma required" ON) 0013 option(WITH_LIBZSTD "Make libzstd required" ON) 0014 0015 set(PKGCONFIG_REQUIRED_TYPE "") 0016 0017 if(WITH_BZIP2) 0018 set(BZIP2_PACKAGE_TYPE "REQUIRED") 0019 else() 0020 set(BZIP2_PACKAGE_TYPE "RECOMMENDED") 0021 endif() 0022 0023 if(WITH_LIBLZMA) 0024 set(LIBLZMA_PACKAGE_TYPE "REQUIRED") 0025 else() 0026 set(LIBLZMA_PACKAGE_TYPE "RECOMMENDED") 0027 endif() 0028 0029 if(WITH_LIBZSTD) 0030 set(PKGCONFIG_REQUIRED_TYPE "REQUIRED") 0031 set(LIBZSTD_REQUIRED_TYPE "REQUIRED") 0032 else() 0033 set(LIBZSTD_REQUIRED_TYPE "") 0034 endif() 0035 0036 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 0037 0038 include(KDEInstallDirs) 0039 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) 0040 include(KDECMakeSettings) 0041 include(KDEGitCommitHooks) 0042 0043 include(ECMGenerateExportHeader) 0044 0045 set(REQUIRED_QT_VERSION 6.5.0) 0046 find_package(Qt6Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) 0047 0048 find_package(ZLIB) 0049 set_package_properties(ZLIB PROPERTIES 0050 URL "https://www.zlib.net" 0051 DESCRIPTION "Support for gzip compressed files and data streams" 0052 TYPE REQUIRED 0053 PURPOSE "Support for gzip compressed files and data streams" 0054 ) 0055 0056 find_package(BZip2) 0057 set_package_properties(BZip2 PROPERTIES 0058 URL "https://sourceware.org/bzip2/" 0059 DESCRIPTION "Support for BZip2 compressed files and data streams" 0060 TYPE ${BZIP2_PACKAGE_TYPE} 0061 PURPOSE "Support for BZip2 compressed files and data streams" 0062 ) 0063 0064 find_package(LibLZMA) 0065 set_package_properties(LibLZMA PROPERTIES 0066 URL "https://tukaani.org/xz/" 0067 DESCRIPTION "Support for xz compressed files and data streams" 0068 TYPE ${LIBLZMA_PACKAGE_TYPE} 0069 PURPOSE "Support for xz compressed files and data streams" 0070 ) 0071 0072 0073 find_package(PkgConfig ${PKGCONFIG_REQUIRED_TYPE}) 0074 if (PkgConfig_FOUND) 0075 pkg_check_modules(LibZstd ${LIBZSTD_REQUIRED_TYPE} IMPORTED_TARGET "libzstd") 0076 endif() 0077 add_feature_info(LibZstd LibZstd_FOUND 0078 "Support for zstd compressed files and data streams" 0079 ) 0080 0081 include(ECMSetupVersion) 0082 include(ECMGenerateHeaders) 0083 include(ECMQtDeclareLoggingCategory) 0084 include(ECMAddQch) 0085 include(ECMDeprecationSettings) 0086 include(ECMPoQmTools) 0087 0088 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") 0089 0090 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0091 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0092 0093 set(karchive_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/karchive_version.h") 0094 ecm_setup_version(PROJECT 0095 VARIABLE_PREFIX KARCHIVE 0096 VERSION_HEADER "${karchive_version_header}" 0097 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake" 0098 SOVERSION 6) 0099 0100 ecm_set_disabled_deprecation_versions( 0101 QT 6.5 0102 ) 0103 0104 0105 add_subdirectory(src) 0106 if (BUILD_TESTING) 0107 add_subdirectory(autotests) 0108 add_subdirectory(tests) 0109 endif() 0110 0111 ecm_install_po_files_as_qm(poqm) 0112 0113 # create a Config.cmake and a ConfigVersion.cmake file and install them 0114 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Archive") 0115 0116 if (BUILD_QCH) 0117 ecm_install_qch_export( 0118 TARGETS KF6Archive_QCH 0119 FILE KF6ArchiveQchTargets.cmake 0120 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0121 COMPONENT Devel 0122 ) 0123 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6ArchiveQchTargets.cmake\")") 0124 endif() 0125 0126 include(CMakePackageConfigHelpers) 0127 0128 configure_package_config_file( 0129 "${CMAKE_CURRENT_SOURCE_DIR}/KF6ArchiveConfig.cmake.in" 0130 "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake" 0131 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0132 ) 0133 0134 install(FILES ${karchive_version_header} 0135 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KArchive 0136 COMPONENT Devel) 0137 0138 install(FILES 0139 "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake" 0140 "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake" 0141 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0142 COMPONENT Devel) 0143 0144 install(EXPORT KF6ArchiveTargets 0145 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0146 FILE KF6ArchiveTargets.cmake 0147 NAMESPACE KF6::) 0148 0149 include(ECMFeatureSummary) 0150 ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 0151 0152 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)