mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-02 13:00:23 +00:00
38 lines
780 B
Nix
38 lines
780 B
Nix
{
|
|
lib,
|
|
makeWrapper,
|
|
symlinkJoin,
|
|
buildEnv,
|
|
openscad,
|
|
openscadPackages,
|
|
}:
|
|
|
|
f:
|
|
|
|
assert lib.assertMsg (lib.isFunction f)
|
|
"openscad.withPackages: Expected `f` to be callable (e.g., 'ps: [ ps.bosl2 ]'), but received a ${lib.typeOf f}.";
|
|
|
|
let
|
|
selectedPackages = f openscadPackages;
|
|
in
|
|
|
|
symlinkJoin {
|
|
name = "${openscad.pname}-with-packages-${openscad.version}";
|
|
paths = [ openscad ];
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
postBuild = ''
|
|
rm $out/bin/openscad
|
|
|
|
# Add the OPENSCADPATH environment variable
|
|
makeWrapper ${openscad}/bin/openscad $out/bin/openscad \
|
|
--set OPENSCADPATH ${lib.makeSearchPath "share/openscad/libraries" selectedPackages}
|
|
'';
|
|
|
|
passthru = {
|
|
unwrapped = openscad;
|
|
withPackages = openscad.withPackages;
|
|
};
|
|
}
|