summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorStefan Siegl <stesie@brokenpipe.de>2017-07-08 21:12:33 +0200
committerStefan Siegl <stesie@brokenpipe.de>2017-09-24 11:37:28 +0200
commit665918c24a33d6a9c46d036352ee2b0c85c8d6ac (patch)
tree724b84cc7fc27e144e516eddbe43bbf20a369201 /pkgs
parent15542822907cd7d65863643311dfa425ef6a4c7a (diff)
downloadnixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.tar
nixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.tar.gz
nixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.tar.bz2
nixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.tar.lz
nixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.tar.xz
nixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.tar.zst
nixlib-665918c24a33d6a9c46d036352ee2b0c85c8d6ac.zip
gn: init at 0.0.0.20170629
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/tools/build-managers/gn/default.nix73
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/gn/default.nix b/pkgs/development/tools/build-managers/gn/default.nix
new file mode 100644
index 000000000000..99215c0818d4
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gn/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, lib, fetchgit, fetchurl, libevent, ninja, python }:
+
+let
+  depsGit = {
+    "tools/gn" = fetchgit {
+      url = "https://chromium.googlesource.com/chromium/src/tools/gn";
+      rev = "d0c518db129975ce88ff1de26c857873b0619c4b";
+      sha256 = "0l15vzmjyx6bwlz1qhn3fy7yx3qzzxr3drnkj3l0p0fmyxza52vx";
+    };
+    "base" = fetchgit {
+      url = "https://chromium.googlesource.com/chromium/src/base";
+      rev = "bc6e3ce8ca01b894751e1f7b22b561e3ae2e7f17";
+      sha256 = "1yl49v6nxbrfms52xf7fiwh7d4301m2aj744pa3hzzh989c5j6g5";
+    };
+    "build" = fetchgit {
+      url = "https://chromium.googlesource.com/chromium/src/build";
+      rev = "e934a19ae908081fba13769924e4ea45a7a451ce";
+      sha256 = "0jhy418vaiin7djg9zvk83f8zhasigki4442x5j7gkmgmgmyc4am";
+    };
+    "config" = fetchgit {
+      url = "https://chromium.googlesource.com/chromium/src/build/config";
+      rev = "df16c6a2c070704b0a25efe46ee9af16de1e65b3";
+      sha256 = "1x18syzz1scwhd8lf448hy5lnfpq118l403x9qmwm0np318w09wg";
+    };
+    "testing/gtest" = fetchgit {
+      url = "https://chromium.googlesource.com/chromium/testing/gtest";
+      rev = "585ec31ea716f08233a815e680fc0d4699843938";
+      sha256 = "0csn1cza66851nmxxiw42smsm3422mx67vcyykwn0a71lcjng6rc";
+    };
+  };
+
+in
+  stdenv.mkDerivation rec {
+    name = "gn";
+    version = "0.0.0.20170629";
+    sourceRoot = ".";
+
+    unpackPhase = ''
+      ${lib.concatStringsSep "\n" (
+        lib.mapAttrsToList (n: v: ''
+          mkdir -p $sourceRoot/${n}
+          cp -r ${v}/* $sourceRoot/${n}
+        '') depsGit)}
+    '';
+
+    postPatch = ''
+      # Patch out Chromium-bundled libevent
+      chmod u+w tools/gn/bootstrap tools/gn/bootstrap/bootstrap.py
+      sed -i -e '/static_libraries.*libevent/,/^ *\]\?[})]$/d' \
+          tools/gn/bootstrap/bootstrap.py
+    '';
+
+    NIX_LDFLAGS = "-levent";
+
+    nativeBuildInputs = [ ninja python ];
+    buildInputs = [ libevent ];
+
+    buildPhase = ''
+      python tools/gn/bootstrap/bootstrap.py -s
+    '';
+
+    installPhase = ''
+      install -vD out/Release/gn "$out/bin/gn"
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A meta-build system that generates NinjaBuild files";
+      homepage = https://chromium.googlesource.com/chromium/src/tools/gn;
+      license = licenses.bsd3;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.stesie ];
+    };
+  }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2b05d1d345c9..31c5219b0f15 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7283,6 +7283,8 @@ with pkgs;
 
   ninja = callPackage ../development/tools/build-managers/ninja { };
 
+  gn = callPackage ../development/tools/build-managers/gn { };
+
   nixbang = callPackage ../development/tools/misc/nixbang {
       pythonPackages = python3Packages;
   };