72 lines
1.6 KiB
Nix
72 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
cmake,
|
|
fetchFromGitHub,
|
|
fetchpatch,
|
|
tbb_2021,
|
|
|
|
useTBB ? true,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "libblake3";
|
|
version = "1.8.2";
|
|
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
];
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "BLAKE3-team";
|
|
repo = "BLAKE3";
|
|
tag = finalAttrs.version;
|
|
hash = "sha256-IABVErXWYQFXZcwsFKfQhm3ox7UZUcW5uzVrGwsSp94=";
|
|
};
|
|
|
|
patches = [
|
|
# build(cmake): Use tbb32 pkgconfig package on 32-bit builds (BLAKE3-team/BLAKE3#482)
|
|
(fetchpatch {
|
|
url = "https://github.com/BLAKE3-team/BLAKE3/commit/dab799623310c8f4be6575002d5c681c09a0e209.patch";
|
|
hash = "sha256-npCtM8nOFU8Tcu//IykjMs8aLU12d93+mIfKuxHkuaQ=";
|
|
relative = "c";
|
|
})
|
|
# build(cmake): Relax Clang frontend variant detection (BLAKE3-team/BLAKE3#477)
|
|
(fetchpatch {
|
|
url = "https://patch-diff.githubusercontent.com/raw/BLAKE3-team/BLAKE3/pull/477.patch";
|
|
hash = "sha256-kidCMGd/i9D9HLLTt7l1DbiU71sFTEyr3Vew4XHUHls=";
|
|
relative = "c";
|
|
})
|
|
];
|
|
|
|
sourceRoot = finalAttrs.src.name + "/c";
|
|
|
|
nativeBuildInputs = [ cmake ];
|
|
|
|
propagatedBuildInputs = lib.optionals useTBB [
|
|
# 2022.0 crashes on macOS at the moment
|
|
tbb_2021
|
|
];
|
|
|
|
cmakeFlags = [
|
|
(lib.cmakeBool "BLAKE3_USE_TBB" useTBB)
|
|
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
|
|
];
|
|
|
|
meta = {
|
|
description = "Official C implementation of BLAKE3";
|
|
homepage = "https://github.com/BLAKE3-team/BLAKE3/tree/master/c";
|
|
license = with lib.licenses; [
|
|
asl20
|
|
cc0
|
|
];
|
|
maintainers = with lib.maintainers; [
|
|
fgaz
|
|
fpletz
|
|
silvanshade
|
|
];
|
|
platforms = lib.platforms.all;
|
|
};
|
|
})
|