about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2016-10-31 16:53:30 -0700
committerGitHub <noreply@github.com>2016-10-31 16:53:30 -0700
commitecbb932957a92212423eb4fa3ea29ae0ba272ef6 (patch)
treea9bcbe76f480129c01bcccb6baa34c3b524c5134
parent8f680da009c6816e0927d0ec3e4a815aab0594d5 (diff)
parentf33fbe5e8258ea2caf89acf762e059ddbb76a892 (diff)
downloadnixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.tar
nixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.tar.gz
nixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.tar.bz2
nixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.tar.lz
nixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.tar.xz
nixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.tar.zst
nixlib-ecbb932957a92212423eb4fa3ea29ae0ba272ef6.zip
Merge pull request #19696 from TikhonJelvis/electron-osx
Electron: Added support for OS X.
-rw-r--r--pkgs/development/tools/electron/default.nix78
1 files changed, 52 insertions, 26 deletions
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index 7c8315859560..e789370d5858 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -1,38 +1,64 @@
 { stdenv, lib, libXScrnSaver, makeWrapper, fetchurl, unzip, atomEnv }:
 
-stdenv.mkDerivation rec {
-  name = "electron-${version}";
+let
   version = "1.2.2";
+  name = "electron-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
-    sha256 = "0jqzs1297f6w7s4j9pd7wyyqbidb0c61yjz47raafslg6nljgp1c";
-    name = "${name}.zip";
+  meta = with stdenv.lib; {
+    description = "Cross platform desktop application shell";
+    homepage = https://github.com/electron/electron;
+    license = licenses.mit;
+    maintainers = [ maintainers.travisbhartwell ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" ];
   };
 
-  buildInputs = [ unzip makeWrapper ];
+  linux = {
+    inherit name version meta;
 
-  buildCommand = ''
-    mkdir -p $out/lib/electron $out/bin
-    unzip -d $out/lib/electron $src
-    ln -s $out/lib/electron/electron $out/bin
+    src = fetchurl {
+      url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
+      sha256 = "0jqzs1297f6w7s4j9pd7wyyqbidb0c61yjz47raafslg6nljgp1c";
+      name = "${name}.zip";
+    };
 
-    fixupPhase
+    buildInputs = [ unzip makeWrapper ];
 
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${atomEnv.libPath}:$out/lib/electron" \
-      $out/lib/electron/electron
+    buildCommand = ''
+      mkdir -p $out/lib/electron $out/bin
+      unzip -d $out/lib/electron $src
+      ln -s $out/lib/electron/electron $out/bin
 
-    wrapProgram $out/lib/electron/electron \
-      --prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
-  '';
+      fixupPhase
 
-  meta = with stdenv.lib; {
-    description = "Cross platform desktop application shell";
-    homepage = https://github.com/electron/electron;
-    license = licenses.mit;
-    maintainers = [ maintainers.travisbhartwell ];
-    platforms = [ "x86_64-linux" ];
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${atomEnv.libPath}:$out/lib/electron" \
+        $out/lib/electron/electron
+
+      wrapProgram $out/lib/electron/electron \
+        --prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1
+    '';
   };
-}
+
+  darwin = {
+    inherit name version meta;
+
+    src = fetchurl {
+      url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-x64.zip";
+      sha256 = "0rqlpj3400qjsfj8k4lwajrwv5l6f8mhrpvsma7p36fw5qjbwp1z";
+      name = "${name}.zip";
+    };
+
+    buildInputs = [ unzip ];
+
+    buildCommand = ''
+    mkdir -p $out/Applications
+    unzip $src
+    mv Electron.app $out/Applications
+    mkdir -p $out/bin
+    ln -s $out/Applications/Electron.app/Contents/MacOs/Electron $out/bin/electron
+    '';
+  };
+in
+
+  stdenv.mkDerivation (if stdenv.isDarwin then darwin else linux)