cf12defd28
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
146 lines
3.4 KiB
CMake
146 lines
3.4 KiB
CMake
set(HAVE_BZIP2_SUPPORT ${BZIP2_FOUND})
|
|
if(BZIP2_FOUND AND BZIP2_NEED_PREFIX)
|
|
set(NEED_BZ2_PREFIX 1)
|
|
endif()
|
|
|
|
set(HAVE_XZ_SUPPORT ${LIBLZMA_FOUND})
|
|
set(HAVE_ZSTD_SUPPORT ${LibZstd_FOUND})
|
|
|
|
configure_file(config-compression.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-compression.h)
|
|
|
|
add_library(KF6Archive)
|
|
add_library(KF6::Archive ALIAS KF6Archive)
|
|
|
|
set_target_properties(KF6Archive PROPERTIES
|
|
VERSION ${KARCHIVE_VERSION}
|
|
SOVERSION ${KARCHIVE_SOVERSION}
|
|
EXPORT_NAME "Archive"
|
|
)
|
|
|
|
ecm_create_qm_loader(KF6Archive karchive6_qt)
|
|
|
|
if(BZIP2_FOUND)
|
|
target_sources(KF6Archive PRIVATE kbzip2filter.cpp)
|
|
target_link_libraries(KF6Archive PRIVATE BZip2::BZip2)
|
|
endif()
|
|
|
|
if(LIBLZMA_FOUND)
|
|
target_sources(KF6Archive PRIVATE kxzfilter.cpp k7zip.cpp)
|
|
target_link_libraries(KF6Archive PRIVATE LibLZMA::LibLZMA)
|
|
endif()
|
|
|
|
if (LibZstd_FOUND)
|
|
target_sources(KF6Archive PRIVATE kzstdfilter.cpp)
|
|
target_link_libraries(KF6Archive PRIVATE PkgConfig::LibZstd)
|
|
endif()
|
|
|
|
|
|
target_sources(KF6Archive PRIVATE karchive.cpp
|
|
kar.cpp
|
|
kcompressiondevice.cpp
|
|
kfilterbase.cpp
|
|
kgzipfilter.cpp
|
|
klimitediodevice.cpp
|
|
knonefilter.cpp
|
|
ktar.cpp
|
|
kzip.cpp
|
|
krcc.cpp
|
|
)
|
|
|
|
ecm_qt_declare_logging_category(KF6Archive
|
|
HEADER loggingcategory.h
|
|
IDENTIFIER KArchiveLog
|
|
CATEGORY_NAME kf.archive
|
|
OLD_CATEGORY_NAMES kf5.karchive
|
|
DEFAULT_SEVERITY Warning
|
|
DESCRIPTION "KArchive"
|
|
EXPORT KARCHIVE
|
|
)
|
|
|
|
ecm_generate_export_header(KF6Archive
|
|
BASE_NAME KArchive
|
|
GROUP_BASE_NAME KF
|
|
VERSION ${KF_VERSION}
|
|
USE_VERSION_HEADER
|
|
DEPRECATED_BASE_VERSION 0
|
|
DEPRECATION_VERSIONS
|
|
EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
|
|
)
|
|
|
|
target_include_directories(KF6Archive
|
|
INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KArchive>"
|
|
)
|
|
|
|
target_link_libraries(KF6Archive
|
|
PUBLIC
|
|
Qt6::Core
|
|
PRIVATE
|
|
ZLIB::ZLIB
|
|
)
|
|
|
|
ecm_generate_headers(KArchive_HEADERS
|
|
HEADER_NAMES
|
|
KArchive
|
|
KArchiveEntry
|
|
KArchiveFile
|
|
KArchiveDirectory
|
|
KAr
|
|
KCompressionDevice
|
|
KFilterBase
|
|
KRcc
|
|
KTar
|
|
KZip
|
|
KZipFileEntry
|
|
|
|
REQUIRED_HEADERS KArchive_HEADERS
|
|
)
|
|
|
|
install(TARGETS KF6Archive
|
|
EXPORT KF6ArchiveTargets
|
|
${KF_INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
if(LIBLZMA_FOUND)
|
|
ecm_generate_headers(KArchive_HEADERS
|
|
HEADER_NAMES
|
|
K7Zip
|
|
REQUIRED_HEADERS KArchive_HEADERS
|
|
)
|
|
endif()
|
|
|
|
install(FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/karchive_export.h
|
|
${KArchive_HEADERS}
|
|
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KArchive
|
|
COMPONENT Devel)
|
|
|
|
ecm_qt_install_logging_categories(
|
|
EXPORT KARCHIVE
|
|
FILE karchive.categories
|
|
DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
|
|
)
|
|
|
|
if(BUILD_QCH)
|
|
ecm_add_qch(
|
|
KF6Archive_QCH
|
|
NAME KArchive
|
|
BASE_NAME KF6Archive
|
|
VERSION ${KF_VERSION}
|
|
ORG_DOMAIN org.kde
|
|
SOURCES # using only public headers, to cover only public API
|
|
${KArchive_HEADERS}
|
|
MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
|
|
LINK_QCHS
|
|
Qt6Core_QCH
|
|
INCLUDE_DIRS
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
BLANK_MACROS
|
|
KARCHIVE_EXPORT
|
|
KARCHIVE_DEPRECATED
|
|
"KARCHIVE_DEPRECATED_VERSION(x, y, t)"
|
|
TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
|
|
QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
|
|
COMPONENT Devel
|
|
)
|
|
endif()
|
|
|