forked from mirrors/nixpkgs
Merge pull request #75719 from manveru/crystal-compiled-closure-size
crystal: reduce closure size of compiled exes by splitting outputs
This commit is contained in:
commit
b0a78e25bf
|
@ -56,6 +56,8 @@ let
|
|||
inherit sha256;
|
||||
};
|
||||
|
||||
outputs = [ "out" "lib" "bin" ];
|
||||
|
||||
# we are almost able to run the full test suite now
|
||||
postPatch = ''
|
||||
substituteInPlace src/crystal/system/unix/time.cr \
|
||||
|
@ -97,22 +99,22 @@ let
|
|||
|
||||
# This makes sure we don't keep depending on the previous version of
|
||||
# crystal used to build this one.
|
||||
CRYSTAL_LIBRARY_PATH = "${placeholder "out"}/lib/crystal";
|
||||
CRYSTAL_LIBRARY_PATH = "${placeholder "lib"}/crystal";
|
||||
|
||||
# We *have* to add `which` to the PATH or crystal is unable to build stuff
|
||||
# later if which is not available.
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 .build/crystal $out/bin/crystal
|
||||
wrapProgram $out/bin/crystal \
|
||||
install -Dm755 .build/crystal $bin/bin/crystal
|
||||
wrapProgram $bin/bin/crystal \
|
||||
--suffix PATH : ${lib.makeBinPath [ pkgconfig clang which ]} \
|
||||
--suffix CRYSTAL_PATH : lib:$out/lib/crystal \
|
||||
--suffix CRYSTAL_PATH : lib:$lib/crystal \
|
||||
--suffix CRYSTAL_LIBRARY_PATH : ${
|
||||
lib.makeLibraryPath (commonBuildInputs extraBuildInputs)
|
||||
}
|
||||
install -dm755 $out/lib/crystal
|
||||
cp -r src/* $out/lib/crystal/
|
||||
install -dm755 $lib/crystal
|
||||
cp -r src/* $lib/crystal/
|
||||
|
||||
install -dm755 $out/share/doc/crystal/api
|
||||
cp -r docs/* $out/share/doc/crystal/api/
|
||||
|
@ -125,6 +127,10 @@ let
|
|||
|
||||
install -Dm644 -t $out/share/licenses/crystal LICENSE README.md
|
||||
|
||||
mkdir -p $out
|
||||
ln -s $bin/bin $out/bin
|
||||
ln -s $lib $out/lib
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
|
Loading…
Reference in a new issue