summary refs log tree commit diff
path: root/pkgs/development/mobile/androidenv
diff options
context:
space:
mode:
authortaku0 <mxxouy6x3m_github@tatapa.org>2016-10-09 19:11:55 +0900
committertaku0 <mxxouy6x3m_github@tatapa.org>2016-10-09 19:11:55 +0900
commita229fd4ce386b38478df7b413b4cfa834a41c3fd (patch)
treeee87fc1de2164cb2e892dab37ea657892bde9256 /pkgs/development/mobile/androidenv
parent09743075a971ec0639ed75887176c0373f85a97e (diff)
downloadnixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.tar
nixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.tar.gz
nixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.tar.bz2
nixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.tar.lz
nixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.tar.xz
nixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.tar.zst
nixpkgs-a229fd4ce386b38478df7b413b4cfa834a41c3fd.zip
androidenv: Add API sources
Diffstat (limited to 'pkgs/development/mobile/androidenv')
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix19
-rw-r--r--pkgs/development/mobile/androidenv/default.nix8
-rwxr-xr-xpkgs/development/mobile/androidenv/fetch.sh1
-rwxr-xr-xpkgs/development/mobile/androidenv/generate-sources.sh3
-rw-r--r--pkgs/development/mobile/androidenv/generate-sources.xsl52
-rw-r--r--pkgs/development/mobile/androidenv/sources.nix140
6 files changed, 220 insertions, 3 deletions
diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index 0126d6981e7..a742386920b 100644
--- a/pkgs/development/mobile/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
@@ -1,8 +1,9 @@
 { stdenv, stdenv_32bit, fetchurl, unzip, makeWrapper
-, platformTools, buildTools, support, supportRepository, platforms, sysimages, addons
+, platformTools, buildTools, support, supportRepository, platforms, sysimages, addons, sources
 , libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, mesa, alsaLib
 , freetype, fontconfig, glib, gtk2, atk, file, jdk, coreutils, libpulseaudio, dbus
 , zlib, glxinfo, xkeyboardconfig
+, includeSources
 }:
 { platformVersions, abiVersions, useGoogleAPIs, useExtraSupportLibs ? false, useGooglePlayServices ? false }:
 
@@ -165,6 +166,22 @@ stdenv.mkDerivation rec {
       
     cd ../..
 
+    # Symlink required sources
+    mkdir -p sources
+    cd sources
+
+    ${if includeSources then
+        stdenv.lib.concatMapStrings (platformVersion:
+        if (builtins.hasAttr ("source_"+platformVersion) sources) then
+          let
+            source = builtins.getAttr ("source_"+platformVersion) sources;
+          in
+          "ln -s ${source}/* android-${platformVersion}\n"
+        else "") platformVersions
+      else ""}
+
+    cd ..
+
     # Symlink required platforms
    
     mkdir -p platforms
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index a21edcc0696..7ecb82ce406 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -1,4 +1,4 @@
-{pkgs, pkgs_i686}:
+{pkgs, pkgs_i686, includeSources ? true}:
 
 rec {
   platformTools = import ./platform-tools.nix {
@@ -39,12 +39,16 @@ rec {
     inherit (pkgs) stdenv fetchurl unzip;
   };
 
+  sources = import ./sources.nix {
+    inherit (pkgs) stdenv fetchurl unzip;
+  };
+
   androidsdk = import ./androidsdk.nix {
     inherit (pkgs) stdenv fetchurl unzip makeWrapper;
     inherit (pkgs) zlib glxinfo freetype fontconfig glib gtk2 atk mesa file alsaLib jdk coreutils libpulseaudio dbus;
     inherit (pkgs.xorg) libX11 libXext libXrender libxcb libXau libXdmcp libXtst xkeyboardconfig;
     
-    inherit platformTools buildTools support supportRepository platforms sysimages addons;
+    inherit platformTools buildTools support supportRepository platforms sysimages addons sources includeSources;
     
     stdenv_32bit = pkgs_i686.stdenv;
   };
diff --git a/pkgs/development/mobile/androidenv/fetch.sh b/pkgs/development/mobile/androidenv/fetch.sh
index c14c060fc67..cd9f29a4c24 100755
--- a/pkgs/development/mobile/androidenv/fetch.sh
+++ b/pkgs/development/mobile/androidenv/fetch.sh
@@ -12,3 +12,4 @@ curl -o sys-img.xml       https://dl.google.com/android/repository/sys-img/andro
 ./generate-addons.sh
 ./generate-platforms.sh
 ./generate-sysimages.sh
+./generate-sources.sh
diff --git a/pkgs/development/mobile/androidenv/generate-sources.sh b/pkgs/development/mobile/androidenv/generate-sources.sh
new file mode 100755
index 00000000000..861fbbf9d2e
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/generate-sources.sh
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+xsltproc generate-sources.xsl repository-11.xml > sources.nix
diff --git a/pkgs/development/mobile/androidenv/generate-sources.xsl b/pkgs/development/mobile/androidenv/generate-sources.xsl
new file mode 100644
index 00000000000..ad76369b2be
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/generate-sources.xsl
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:sdk="http://schemas.android.com/sdk/android/repository/11">
+
+  <xsl:output omit-xml-declaration="yes" indent="no" />
+
+  <xsl:template name="repository-url">
+    <xsl:variable name="raw-url" select="sdk:archives/sdk:archive/sdk:url"/>
+    <xsl:choose>
+      <xsl:when test="starts-with($raw-url, 'http')">
+        <xsl:value-of select="$raw-url"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>https://dl.google.com/android/repository/</xsl:text>
+        <xsl:value-of select="$raw-url"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="/sdk:sdk-repository">
+# This file is generated from generate-sources.sh. DO NOT EDIT.
+# Execute generate-sources.sh or fetch.sh to update the file.
+{stdenv, fetchurl, unzip}:
+
+let
+  buildSource = args:
+    stdenv.mkDerivation (args // {
+      buildInputs = [ unzip ];
+      buildCommand = ''
+        mkdir -p $out
+        cd $out
+        unzip $src
+    '';
+  });
+in
+{
+<xsl:for-each select="sdk:source"><xsl:sort select="sdk:api-level" data-type="number"/>
+  source_<xsl:value-of select="sdk:api-level" /> = buildSource {
+    name = "android-source-<xsl:value-of select="sdk:api-level" />";
+    src = fetchurl {
+      url = <xsl:call-template name="repository-url"/>;
+      sha1 = "<xsl:value-of select="sdk:archives/sdk:archive/sdk:checksum[@type='sha1']" />";
+    };
+    meta = {
+      description = "Source code for Android API <xsl:value-of select="sdk:api-level" />";
+    };
+  };
+</xsl:for-each>
+}
+</xsl:template>
+</xsl:stylesheet>
diff --git a/pkgs/development/mobile/androidenv/sources.nix b/pkgs/development/mobile/androidenv/sources.nix
new file mode 100644
index 00000000000..5bb7409c2c4
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/sources.nix
@@ -0,0 +1,140 @@
+
+# This file is generated from generate-sources.sh. DO NOT EDIT.
+# Execute generate-sources.sh or fetch.sh to update the file.
+{stdenv, fetchurl, unzip}:
+
+let
+  buildSource = args:
+    stdenv.mkDerivation (args // {
+      buildInputs = [ unzip ];
+      buildCommand = ''
+        mkdir -p $out
+        cd $out
+        unzip $src
+    '';
+  });
+in
+{
+
+  source_14 = buildSource {
+    name = "android-source-14";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-14_r01.zip;
+      sha1 = "eaf4ed7dcac46e68516a1b4aa5b0d9e5a39a7555";
+    };
+    meta = {
+      description = "Source code for Android API 14";
+    };
+  };
+
+  source_15 = buildSource {
+    name = "android-source-15";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-15_r02.zip;
+      sha1 = "e5992a5747c9590783fbbdd700337bf0c9f6b1fa";
+    };
+    meta = {
+      description = "Source code for Android API 15";
+    };
+  };
+
+  source_16 = buildSource {
+    name = "android-source-16";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-16_r02.zip;
+      sha1 = "0f83c14ed333c45d962279ab5d6bc98a0269ef84";
+    };
+    meta = {
+      description = "Source code for Android API 16";
+    };
+  };
+
+  source_17 = buildSource {
+    name = "android-source-17";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-17_r01.zip;
+      sha1 = "6f1f18cd2d2b1852d7f6892df9cee3823349d43a";
+    };
+    meta = {
+      description = "Source code for Android API 17";
+    };
+  };
+
+  source_18 = buildSource {
+    name = "android-source-18";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-18_r01.zip;
+      sha1 = "8b49fdf7433f4881a2bfb559b5dd05d8ec65fb78";
+    };
+    meta = {
+      description = "Source code for Android API 18";
+    };
+  };
+
+  source_19 = buildSource {
+    name = "android-source-19";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-19_r02.zip;
+      sha1 = "433a1d043ef77561571250e94cb7a0ef24a202e7";
+    };
+    meta = {
+      description = "Source code for Android API 19";
+    };
+  };
+
+  source_20 = buildSource {
+    name = "android-source-20";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-20_r01.zip;
+      sha1 = "8da3e40f2625f9f7ef38b7e403f49f67226c0d76";
+    };
+    meta = {
+      description = "Source code for Android API 20";
+    };
+  };
+
+  source_21 = buildSource {
+    name = "android-source-21";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-21_r01.zip;
+      sha1 = "137a5044915d32bea297a8c1552684802bbc2e25";
+    };
+    meta = {
+      description = "Source code for Android API 21";
+    };
+  };
+
+  source_22 = buildSource {
+    name = "android-source-22";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-22_r01.zip;
+      sha1 = "98320e13976d11597a4a730a8d203ac9a03ed5a6";
+    };
+    meta = {
+      description = "Source code for Android API 22";
+    };
+  };
+
+  source_23 = buildSource {
+    name = "android-source-23";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-23_r01.zip;
+      sha1 = "b0f15da2762b42f543c5e364c2b15b198cc99cc2";
+    };
+    meta = {
+      description = "Source code for Android API 23";
+    };
+  };
+
+  source_24 = buildSource {
+    name = "android-source-24";
+    src = fetchurl {
+      url = https://dl.google.com/android/repository/sources-24_r01.zip;
+      sha1 = "6b96115830a83d654479f32ce4b724ca9011148b";
+    };
+    meta = {
+      description = "Source code for Android API 24";
+    };
+  };
+
+}