cypress: add support for aarch64 on darwin (#342798)
This commit is contained in:
commit
a1dfa5ac0d
@ -12,6 +12,7 @@
|
||||
, unzip
|
||||
, wrapGAppsHook3
|
||||
, xorg
|
||||
, darwin
|
||||
}:
|
||||
|
||||
let
|
||||
@ -24,6 +25,10 @@ let
|
||||
platform = "linux-arm64";
|
||||
checksum = "sha256-rB0ak6jYnJMb0aHDLAyhaGoOFK4FXDLEOeofNdW/Wk8=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
platform = "darwin-arm64";
|
||||
checksum = "sha256-L2rhtB/DIK7Qum2YNoWVBn4mf+DA3rbcBUfZEEa/C8c=";
|
||||
};
|
||||
};
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
binary = availableBinaries.${system} or (throw "cypress: No binaries available for system ${system}");
|
||||
@ -35,27 +40,37 @@ in stdenv.mkDerivation rec {
|
||||
src = fetchzip {
|
||||
url = "https://cdn.cypress.io/desktop/${version}/${platform}/cypress.zip";
|
||||
sha256 = checksum;
|
||||
stripRoot = !stdenv.isDarwin;
|
||||
};
|
||||
|
||||
# don't remove runtime deps
|
||||
dontPatchELF = true;
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook (wrapGAppsHook3.override { makeWrapper = makeShellWrapper; }) unzip makeShellWrapper];
|
||||
nativeBuildInputs = [ unzip makeShellWrapper ]
|
||||
++ lib.optionals stdenv.isLinux [ autoPatchelfHook (wrapGAppsHook3.override { makeWrapper = makeShellWrapper; }) ];
|
||||
|
||||
buildInputs = with xorg; [
|
||||
buildInputs = lib.optionals stdenv.isLinux (with xorg; [
|
||||
libXScrnSaver
|
||||
libXdamage
|
||||
libXtst
|
||||
libxshmfence
|
||||
] ++ [
|
||||
nss
|
||||
gtk2
|
||||
alsa-lib
|
||||
gtk3
|
||||
mesa # for libgbm
|
||||
];
|
||||
]) ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Cocoa
|
||||
CoreServices
|
||||
CoreMedia
|
||||
CoreAudio
|
||||
AudioToolbox
|
||||
AVFoundation
|
||||
Foundation
|
||||
ApplicationServices
|
||||
]);
|
||||
|
||||
runtimeDependencies = [ (lib.getLib udev) ];
|
||||
runtimeDependencies = lib.optional stdenv.isLinux (lib.getLib udev);
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
@ -68,11 +83,15 @@ in stdenv.mkDerivation rec {
|
||||
printf '{"version":"%b"}' $version > $out/bin/resources/app/package.json
|
||||
# Cypress now looks for binary_state.json in bin
|
||||
echo '{"verified": true}' > $out/binary_state.json
|
||||
ln -s $out/opt/cypress/Cypress $out/bin/cypress
|
||||
${if stdenv.isDarwin then ''
|
||||
ln -s $out/opt/cypress/Cypress.app/Contents/MacOS/Cypress $out/bin/cypress
|
||||
'' else ''
|
||||
ln -s $out/opt/cypress/Cypress $out/bin/cypress
|
||||
''}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
postFixup = lib.optionalString (!stdenv.isDarwin) ''
|
||||
# exit with 1 after 25.05
|
||||
makeWrapper $out/opt/cypress/Cypress $out/bin/Cypress \
|
||||
--run 'echo "Warning: Use the lowercase cypress executable instead of the capitalized one."'
|
||||
|
Loading…
Reference in New Issue
Block a user