2025-01-22 22:09:06 -07:00

78 lines
1.5 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
tbb_2021_11,
libgit2,
curl,
fmt,
nlohmann_json,
pkg-config,
}:
let
toml11 = fetchFromGitHub rec {
owner = "ToruNiina";
repo = "toml11";
version = "4.2.0";
tag = "v${version}";
sha256 = "sha256-NUuEgTpq86rDcsQnpG0IsSmgLT0cXhd1y32gT57QPAw=";
};
in
stdenv.mkDerivation rec {
pname = "cabinpkg";
version = "0.11.1";
src = fetchFromGitHub {
owner = "cabinpkg";
repo = "cabin";
tag = version;
sha256 = "sha256-qMmfViu3ol8+Tpyy8hn0j5r+bql0SFeKPVVj/ox4AGQ=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
];
buildInputs = [
libgit2
fmt
tbb_2021_11
nlohmann_json
curl
];
# Skip git cloning toml11
preConfigure = ''
substituteInPlace Makefile \
--replace-fail "git clone https://github.com/ToruNiina/toml11.git \$@" ":" \
--replace-fail "git -C \$@ reset --hard v4.2.0" ":"
'';
preBuild = ''
mkdir -p build/DEPS/
cp -rf ${toml11} build/DEPS/toml11
'';
makeFlags = [
"RELEASE=1"
"COMMIT_HASH="
"COMMIT_SHORT_HASH="
"COMMIT_DATE="
];
installFlags = [ "PREFIX=${placeholder "out"}" ];
meta = {
broken = (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64);
homepage = "https://cabinpkg.com";
description = "A package manager and build system for C++";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.qwqawawow ];
platforms = lib.platforms.unix;
mainProgram = "cabin";
};
}