ya-ar/support/lib-libarchive.nix
2026-02-10 21:24:16 +09:00

53 lines
1.7 KiB
Nix

{ mkMuslLib, pkgs, zigCC, zigAR, zigRANLIB, autotoolsHost, ... }:
let
ctx = { inherit mkMuslLib pkgs zigCC zigAR zigRANLIB autotoolsHost; };
zlib = import ./lib-zlib.nix ctx;
bzip2 = import ./lib-bzip2.nix ctx;
xz = import ./lib-xz.nix ctx;
lz4 = import ./lib-lz4.nix ctx;
zstd = import ./lib-zstd.nix ctx;
libxml2 = import ./lib-libxml2.nix ctx;
in
{
libarchive = mkMuslLib {
pname = "libarchive-musl-static";
src = pkgs.libarchive.src;
nativeBuildInputs = [ pkgs.cmake pkgs.pkg-config ];
configurePhase = ''
cmake -B builddir \
-DCMAKE_C_COMPILER="${zigCC}" \
-DCMAKE_CXX_COMPILER="${zigCC}" \
-DCMAKE_AR="${zigAR}" \
-DCMAKE_RANLIB="${zigRANLIB}" \
-DBUILD_SHARED_LIBS=OFF \
-DENABLE_TEST=OFF \
-DENABLE_TAR=OFF \
-DENABLE_CPIO=OFF \
-DENABLE_CAT=OFF \
-DENABLE_UNZIP=OFF \
-DENABLE_OPENSSL=OFF \
-DENABLE_LIBB2=OFF \
-DENABLE_ICONV=OFF \
-DENABLE_EXPAT=OFF \
-DENABLE_PCRE2POSIX=OFF \
-DENABLE_PCREPOSIX=OFF \
-DENABLE_LIBXML2=ON \
-DENABLE_ZLIB=ON \
-DENABLE_BZip2=ON \
-DENABLE_LZMA=ON \
-DENABLE_ZSTD=ON \
-DENABLE_LZ4=ON \
-DENABLE_ACL=OFF \
-DENABLE_XATTR=OFF \
-DCMAKE_PREFIX_PATH="${zlib};${bzip2};${xz};${lz4};${zstd};${libxml2}" \
-DCMAKE_FIND_ROOT_PATH="${zlib};${bzip2};${xz};${lz4};${zstd};${libxml2}" \
-DCMAKE_INSTALL_PREFIX=$out \
-DCMAKE_INSTALL_LIBDIR=lib
'';
buildPhase = "cmake --build builddir -j$NIX_BUILD_CORES";
installPhase = "cmake --install builddir";
};
# All libs needed for static linking (libarchive + its deps)
allLibs = [ zlib bzip2 xz lz4 zstd libxml2 ];
}