just.setupHook: init
Adapted from the Ninja setup hook. This will mean that adding just to nativeBuildInputs is enough to have a package be automatically built with it, matching make, bmake, ninja, etc. Currently, we have two packages in Nixpkgs that use just, dogdns and kabeljau. kabeljau follows the expected conventions, while dogdns does not. I expect there to be more packages using just in future, following these conventions, because all of the packages in system76's in-progress COSMIC desktop environment use just, and follow the conventions.
This commit is contained in:
parent
5d74a825b5
commit
6d2033e2b9
3 changed files with 64 additions and 0 deletions
|
@ -72,6 +72,8 @@ rustPlatform.buildRustPackage rec {
|
|||
--zsh completions/just.zsh
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
|
|
58
pkgs/development/tools/just/setup-hook.sh
Normal file
58
pkgs/development/tools/just/setup-hook.sh
Normal file
|
@ -0,0 +1,58 @@
|
|||
justBuildPhase() {
|
||||
runHook preBuild
|
||||
|
||||
local flagsArray=($justFlags "${justFlagsArray[@]}")
|
||||
|
||||
echoCmd 'build flags' "${flagsArray[@]}"
|
||||
just "${flagsArray[@]}"
|
||||
|
||||
runHook postBuild
|
||||
}
|
||||
|
||||
justCheckPhase() {
|
||||
runHook preCheck
|
||||
|
||||
if [ -z "${checkTarget:-}" ]; then
|
||||
if just -n test >/dev/null 2>&1; then
|
||||
checkTarget=test
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "${checkTarget:-}" ]; then
|
||||
echo "no test target found in just, doing nothing"
|
||||
else
|
||||
local flagsArray=(
|
||||
$justFlags "${justFlagsArray[@]}"
|
||||
$checkTarget
|
||||
)
|
||||
|
||||
echoCmd 'check flags' "${flagsArray[@]}"
|
||||
just "${flagsArray[@]}"
|
||||
fi
|
||||
|
||||
runHook postCheck
|
||||
}
|
||||
|
||||
justInstallPhase() {
|
||||
runHook preInstall
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
local flagsArray=($justFlags "${justFlagsArray[@]}" ${installTargets:-install})
|
||||
|
||||
echoCmd 'install flags' "${flagsArray[@]}"
|
||||
just "${flagsArray[@]}"
|
||||
|
||||
runHook postInstall
|
||||
}
|
||||
|
||||
if [ -z "${dontUseJustBuild-}" -a -z "${buildPhase-}" ]; then
|
||||
buildPhase=justBuildPhase
|
||||
fi
|
||||
|
||||
if [ -z "${dontUseJustCheck-}" -a -z "${checkPhase-}" ]; then
|
||||
checkPhase=justCheckPhase
|
||||
fi
|
||||
|
||||
if [ -z "${dontUseJustInstall-}" -a -z "${installPhase-}" ]; then
|
||||
installPhase=justInstallPhase
|
||||
fi
|
|
@ -41,6 +41,10 @@ rustPlatform.buildRustPackage rec {
|
|||
};
|
||||
};
|
||||
|
||||
dontUseJustBuild = true;
|
||||
dontUseJustCheck = true;
|
||||
dontUseJustInstall = true;
|
||||
|
||||
postPatch = ''
|
||||
# update Cargo.lock to work with openssl 3
|
||||
ln -sf ${./Cargo.lock} Cargo.lock
|
||||
|
|
Loading…
Reference in a new issue