quartus-prime-lite: make usable under emulation

This commit is contained in:
Thomas Watson 2024-04-06 11:44:53 -05:00 committed by Bjørn Forsman
parent a4f75867ee
commit 4d46279ad9
2 changed files with 12 additions and 2 deletions

View File

@ -1,7 +1,7 @@
{ lib, buildFHSEnv, callPackage, makeDesktopItem, writeScript, runtimeShell
, runCommand, quartus-prime-lite
, runCommand, unstick, quartus-prime-lite
, supportedDevices ? [ "Arria II" "Cyclone V" "Cyclone IV" "Cyclone 10 LP" "MAX II/V" "MAX 10 FPGA" ]
, unwrapped ? callPackage ./quartus.nix { inherit supportedDevices; }
, unwrapped ? callPackage ./quartus.nix { inherit unstick supportedDevices withQuesta; }
}:
let

View File

@ -76,14 +76,24 @@ in stdenv.mkDerivation rec {
"questa_fe"
] ++ (lib.attrValues unsupportedDeviceIds);
in ''
echo "setting up installer..."
${lib.concatMapStringsSep "\n" copyInstaller installers}
${lib.concatMapStringsSep "\n" copyComponent components}
echo "executing installer..."
# "Could not load seccomp program: Invalid argument" might occur if unstick
# itself is compiled for x86_64 instead of the non-x86 host. In that case,
# override the input.
unstick $TEMP/${(builtins.head installers).name} \
--disable-components ${lib.concatStringsSep "," disabledComponents} \
--mode unattended --installdir $out --accept_eula 1
echo "cleaning up..."
rm -r $out/uninstall $out/logs
# replace /proc pentium check with a true statement. this allows usage under emulation.
substituteInPlace $out/quartus/adm/qenv.sh \
--replace-fail 'grep sse /proc/cpuinfo > /dev/null 2>&1' ':'
'';
meta = with lib; {