# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit check-reqs cmake flag-o-matic DESCRIPTION="A fast high compression read-only file system for Linux, Windows and macOS" HOMEPAGE="https://github.com/mhx/dwarfs" SRC_URI="https://github.com/mhx/dwarfs/releases/download/v${PV}/${P}.tar.xz" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64" IUSE="+jemalloc test +tools +fuse +perfmon flac ricepp stacktrace" S="${WORKDIR}/dwarfs-${PV}" PATCHES=( "${FILESDIR}"/dwarfs-libfmt9.patch "${FILESDIR}"/dwarfs-0.10.1-boost-1.86.patch ) RDEPEND=" >=app-arch/libarchive-3.6.0 >=app-arch/brotli-1.0.9 >=app-arch/lz4-1.9.3 >=app-arch/xz-utils-5.2.5 >=app-arch/zstd-1.4.8 dev-cpp/gflags dev-cpp/glog[gflags] >=dev-cpp/parallel-hashmap-1.3.8 dev-libs/boost[context] dev-libs/double-conversion dev-libs/libevent >=dev-libs/libfmt-9.1.0 dev-libs/utfcpp >=dev-libs/xxhash-0.8.1 flac? ( >=media-libs/flac-1.4.2 ) fuse? ( sys-fs/fuse:3 ) sys-libs/binutils-libs stacktrace? ( sys-libs/libunwind ) sys-libs/zlib jemalloc? ( >=dev-libs/jemalloc-5.2.1 ) test? ( >=dev-cpp/gtest-1.13.0 ) >=dev-cpp/range-v3-0.12.0 dev-libs/date dev-cpp/nlohmann_json " DEPEND=" ${RDEPEND} " BDEPEND=" virtual/pkgconfig " FEATURES=" stacktrace? ( nostrip ) " DOCS=( "README.md" "CHANGES.md" "TODO" ) RESTRICT="!test? ( test )" CHECKREQS_DISK_BUILD="500M" CMAKE_WARN_UNUSED_CLI=0 src_prepare(){ cmake_src_prepare sed "s/DESTINATION lib/DESTINATION $(get_libdir)/" -i cmake/libdwarfs.cmake || die } src_configure(){ mycmakeargs=( -DUSE_JEMALLOC=$(usex jemalloc ON OFF) -DWITH_TESTS=$(usex test ON OFF) -DWITH_MAN_PAGES=ON -DWITH_MAN_OPTION=ON -DWITH_LIBDWARFS=ON -DWITH_TOOLS=$(usex tools ON OFF) -DWITH_FUSE_DRIVER=$(usex fuse ON OFF) -DENABLE_PERFMON=$(usex perfmon ON OFF) -DTRY_ENABLE_FLAC=$(usex flac ON OFF) -DENABLE_RICEPP=$(usex ricepp ON OFF) -DENABLE_STACKTRACE=$(usex stacktrace ON OFF) -DWITH_LEGACY_FUSE=OFF -DPREFER_SYSTEM_GTEST=ON ) cmake_src_configure } src_test(){ export DWARFS_SKIP_FUSE_TESTS=1 local CMAKE_SKIP_TESTS=( # Perfmon is not working within sandbox dwarfsextract_test.perfmon ) cmake_src_test } pkg_postinst(){ elog "More information: ${HOMEPAGE}" if use tools ; then elog " creating images: mkdwarfs --man" elog " creating images: man mkdwarfs" elog " creating images: ${HOMEPAGE}/blob/main/doc/mkdwarfs.md" fi if use fuse ; then elog " mounting images: dwarfs --man" elog " mounting images: man dwarfs" elog " mounting images: ${HOMEPAGE}/blob/main/doc/dwarfs.md" fi }