idris: Wrap with IDRIS_CC

Previously idris used the C compiler from PATH for the C backend, which
means that the results and whether it even succeeds can vary between
systems (e.g. if a Nix-built Idris was used on a super old Linux system,
the cc installed there might not even work for Idris' C).

To make this more predictable, this commit sets the IDRIS_CC env var,
which Idris will prefer over searching in PATH, to a Nix-provided gcc
executable, given that it is not already set, so it's still possible to
override.
This commit is contained in:
Silvan Mosberger 2018-07-02 01:51:03 +02:00
parent d74419ee3e
commit b6cfa372f0
No known key found for this signature in database
GPG key ID: 9424360B4B85C9E7

View file

@ -1,4 +1,4 @@
{ symlinkJoin, makeWrapper, stdenv }: idris: { path, lib }:
{ symlinkJoin, makeWrapper, stdenv, gcc }: idris: { path, lib }:
symlinkJoin {
name = idris.name;
@ -8,6 +8,7 @@ symlinkJoin {
meta.platforms = idris.meta.platforms;
postBuild = ''
wrapProgram $out/bin/idris \
--run 'export IDRIS_CC=''${IDRIS_CC:-${stdenv.lib.getBin gcc}/bin/gcc}' \
--suffix PATH : ${ stdenv.lib.makeBinPath path } \
--suffix LIBRARY_PATH : ${stdenv.lib.makeLibraryPath lib}
'';