nixpkgs/pkgs/development/nim-packages/build-nim-package/default.nix
2022-06-10 11:01:59 -05:00

45 lines
1.2 KiB
Nix

{ lib, stdenv, nim, nim_builder }:
{ strictDeps ? true, depsBuildBuild ? [ ], nativeBuildInputs ? [ ]
, configurePhase ? null, buildPhase ? null, checkPhase ? null
, installPhase ? null, meta ? { }, ... }@attrs:
stdenv.mkDerivation (attrs // {
inherit strictDeps;
depsBuildBuild = [ nim_builder ] ++ depsBuildBuild;
nativeBuildInputs = [ nim ] ++ nativeBuildInputs;
configurePhase = if isNull configurePhase then ''
runHook preConfigure
export NIX_NIM_BUILD_INPUTS=''${pkgsHostTarget[@]} $NIX_NIM_BUILD_INPUTS
nim_builder --phase:configure
runHook postConfigure
'' else
configurePhase;
buildPhase = if isNull buildPhase then ''
runHook preBuild
nim_builder --phase:build
runHook postBuild
'' else
buildPhase;
checkPhase = if isNull checkPhase then ''
runHook preCheck
nim_builder --phase:check
runHook postCheck
'' else
checkPhase;
installPhase = if isNull installPhase then ''
runHook preInstall
nim_builder --phase:install
runHook postInstall
'' else
installPhase;
meta = meta // {
platforms = meta.platforms or nim.meta.platforms;
maintainers = (meta.maintainers or [ ]) ++ [ lib.maintainers.ehmry ];
};
})