39 lines
726 B
Nix
39 lines
726 B
Nix
|
|
{
|
||
|
|
lib,
|
||
|
|
file,
|
||
|
|
hare,
|
||
|
|
runCommandNoCC,
|
||
|
|
writeText,
|
||
|
|
}:
|
||
|
|
let
|
||
|
|
archs = lib.concatStringsSep " " (
|
||
|
|
map (lib.removeSuffix "-linux") (builtins.filter (lib.hasSuffix "-linux") hare.meta.platforms)
|
||
|
|
);
|
||
|
|
mainDotHare = writeText "main.ha" ''
|
||
|
|
export fn main() void = void;
|
||
|
|
'';
|
||
|
|
in
|
||
|
|
runCommandNoCC "${hare.pname}-cross-compilation-test"
|
||
|
|
{
|
||
|
|
nativeBuildInputs = [
|
||
|
|
hare
|
||
|
|
file
|
||
|
|
];
|
||
|
|
}
|
||
|
|
''
|
||
|
|
HARECACHE="$(mktemp -d)"
|
||
|
|
export HARECACHE
|
||
|
|
readonly binprefix="bin"
|
||
|
|
for a in ${archs}; do
|
||
|
|
outbin="$binprefix-$a"
|
||
|
|
set -x
|
||
|
|
hare build -o "$outbin" -q -R -a "$a" ${mainDotHare}
|
||
|
|
set +x
|
||
|
|
printf -- 'Built "%s" target\n' "$a"
|
||
|
|
done
|
||
|
|
|
||
|
|
file -- "$binprefix-"*
|
||
|
|
|
||
|
|
: 1>$out
|
||
|
|
''
|