nixpkgs/pkgs/development/mobile/androidenv/default.nix
Matthew Bauer c8fd285c8d android: add ndkVer to resolve ndk ambiguity
It wasn’t exactly clear which NDK you were using previously. This adds
an attribute to system that handles what version of the NDK we should
use when building things.

/cc @Ericson2314
2018-06-22 11:06:17 -04:00

317 lines
8.7 KiB
Nix

{ buildPackages, pkgs, pkgs_i686, targetPackages
, includeSources ? true
}:
# TODO: use callPackage instead of import to avoid so many inherits
rec {
platformTools = import ./platform-tools.nix {
inherit buildPackages pkgs;
};
buildTools = import ./build-tools.nix {
inherit (pkgs) stdenv fetchurl unzip zlib file;
stdenv_32bit = pkgs_i686.stdenv;
zlib_32bit = pkgs_i686.zlib;
ncurses_32bit = pkgs_i686.ncurses5;
ncurses = pkgs.ncurses5;
};
support = import ./support.nix {
inherit (pkgs) stdenv fetchurl unzip;
};
supportRepository = import ./support-repository.nix {
inherit (pkgs) stdenv fetchurl unzip;
};
platforms = if (pkgs.stdenv.system == "i686-linux" || pkgs.stdenv.system == "x86_64-linux")
then import ./platforms-linux.nix {
inherit (pkgs) stdenv fetchurl unzip;
}
else if pkgs.stdenv.system == "x86_64-darwin"
then import ./platforms-macosx.nix {
inherit (pkgs) stdenv fetchurl unzip;
}
else throw "Platform: ${pkgs.stdenv.system} not supported!";
sysimages = import ./sysimages.nix {
inherit (pkgs) stdenv fetchurl unzip;
};
addons = import ./addons.nix {
inherit (pkgs) stdenv fetchurl unzip;
};
sources = import ./sources.nix {
inherit (pkgs) stdenv fetchurl unzip;
};
androidsdk = import ./androidsdk.nix {
inherit (pkgs) stdenv fetchurl unzip makeWrapper zlib
glxinfo freetype fontconfig glib gtk2 atk
libGLU_combined file alsaLib jdk coreutils
libpulseaudio dbus fetchzip;
inherit (pkgs.xorg) libX11 libXext libXrender
libxcb libXau libXdmcp libXtst xkeyboardconfig;
inherit platformTools buildTools support
supportRepository platforms sysimages
addons sources includeSources;
stdenv_32bit = pkgs_i686.stdenv;
};
androidsdk_2_1 = androidsdk {
platformVersions = [ "7" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_2_2 = androidsdk {
platformVersions = [ "8" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_2_3_3 = androidsdk {
platformVersions = [ "10" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_3_0 = androidsdk {
platformVersions = [ "11" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_3_1 = androidsdk {
platformVersions = [ "12" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_3_2 = androidsdk {
platformVersions = [ "13" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_4_0 = androidsdk {
platformVersions = [ "14" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_4_0_3 = androidsdk {
platformVersions = [ "15" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_4_1 = androidsdk {
platformVersions = [ "16" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_4_2 = androidsdk {
platformVersions = [ "17" ];
abiVersions = [ "armeabi-v7a" ];
useGoogleAPIs = true;
};
androidsdk_4_3 = androidsdk {
platformVersions = [ "18" ];
abiVersions = [ "armeabi-v7a" "x86" ];
useGoogleAPIs = true;
};
androidsdk_4_4 = androidsdk {
platformVersions = [ "19" ];
abiVersions = [ "armeabi-v7a" "x86" ];
useGoogleAPIs = true;
};
androidsdk_5_0_1 = androidsdk {
platformVersions = [ "21" ];
abiVersions = [ "armeabi-v7a" "x86" ];
useGoogleAPIs = true;
};
androidsdk_5_0_1_extras = androidsdk {
platformVersions = [ "21" ];
abiVersions = [ "armeabi-v7a" "x86" ];
useGoogleAPIs = true;
useExtraSupportLibs = true;
useGooglePlayServices = true;
};
androidsdk_5_1_1 = androidsdk {
platformVersions = [ "22" ];
abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
useGoogleAPIs = true;
};
androidsdk_5_1_1_extras = androidsdk {
platformVersions = [ "22" ];
abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
useGoogleAPIs = true;
useExtraSupportLibs = true;
useGooglePlayServices = true;
};
androidsdk_6_0 = androidsdk {
platformVersions = [ "23" ];
abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
useGoogleAPIs = true;
};
androidsdk_6_0_extras = androidsdk {
platformVersions = [ "23" ];
abiVersions = [ "armeabi-v7a" "x86" "x86_64"];
useGoogleAPIs = true;
useExtraSupportLibs = true;
useGooglePlayServices = true;
useInstantApps = true;
};
androidsdk_7_0 = androidsdk {
platformVersions = [ "24" ];
abiVersions = [ "x86" "x86_64"];
useGoogleAPIs = true;
};
androidsdk_7_0_extras = androidsdk {
platformVersions = [ "24" ];
abiVersions = [ "x86" "x86_64"];
useGoogleAPIs = true;
useExtraSupportLibs = true;
useGooglePlayServices = true;
useInstantApps = true;
};
androidsdk_7_1_1 = androidsdk {
platformVersions = [ "25" ];
abiVersions = [ "x86" "x86_64"];
useGoogleAPIs = true;
};
androidsdk_7_1_1_extras = androidsdk {
platformVersions = [ "25" ];
abiVersions = [ "x86" "x86_64"];
useGoogleAPIs = true;
useExtraSupportLibs = true;
useGooglePlayServices = true;
useInstantApps = true;
};
androidsdk_8_0 = androidsdk {
platformVersions = [ "26" ];
abiVersions = [ "x86" "x86_64"];
useGoogleAPIs = true;
};
androidsdk_8_0_extras = androidsdk {
platformVersions = [ "26" ];
abiVersions = [ "x86" "x86_64"];
useGoogleAPIs = true;
useExtraSupportLibs = true;
useGooglePlayServices = true;
useInstantApps = true;
};
androidsdk_latest = androidsdk_8_0;
androidndk_10e = import ./androidndk.nix {
inherit (buildPackages)
p7zip makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses5 lib python3 libcxx
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
version = "10e";
sha256 = "032j3sgk93bjbkny84i17ph61dhjmsax9ddqng1zbi2p7dgl0pzf";
};
androidndk_16b = import ./androidndk.nix {
inherit (buildPackages)
p7zip makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses5 lib python3 libcxx
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
version = "16b";
sha256 = "00frcnvpcsngv00p6l2vxj4cwi2mwcm9lnjvm3zv4wrp6pss9pmw";
};
androidndk_17 = import ./androidndk.nix {
inherit (buildPackages)
p7zip makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses5 lib python3 libcxx
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
version = "17";
sha256 = "1jj3zy958zsidywqd5nwdyrnr72rf9zhippkl8rbqxfy8wxq2gds";
};
androidndk = androidndk_17;
androidndk_r8e = import ./androidndk_r8e.nix {
inherit (buildPackages)
makeWrapper;
inherit (pkgs)
stdenv fetchurl zlib ncurses lib
coreutils file findutils gawk gnugrep gnused jdk which;
inherit platformTools;
};
buildApp = import ./build-app.nix {
inherit (pkgs) stdenv jdk ant gnumake gawk file which;
inherit androidsdk androidndk;
};
emulateApp = import ./emulate-app.nix {
inherit (pkgs) stdenv;
inherit androidsdk;
};
androidndkPkgs_17 = import ./androidndk-pkgs.nix {
inherit (buildPackages)
makeWrapper;
inherit (pkgs)
lib hostPlatform targetPlatform
runCommand wrapBintoolsWith wrapCCWith;
# buildPackages.foo rather than buildPackages.buildPackages.foo would work,
# but for splicing messing up on infinite recursion for the variants we
# *dont't* use. Using this workaround, but also making a test to ensure
# these two really are the same.
buildAndroidndk = buildPackages.buildPackages.androidenv.androidndk_17;
androidndk = androidndk_17;
targetAndroidndkPkgs = targetPackages.androidenv.androidndkPkgs_17;
};
androidndkPkgs = androidndkPkgs_17;
androidndkPkgs_10e = import ./androidndk-pkgs.nix {
inherit (buildPackages)
makeWrapper;
inherit (pkgs)
lib hostPlatform targetPlatform
runCommand wrapBintoolsWith wrapCCWith;
# buildPackages.foo rather than buildPackages.buildPackages.foo would work,
# but for splicing messing up on infinite recursion for the variants we
# *dont't* use. Using this workaround, but also making a test to ensure
# these two really are the same.
buildAndroidndk = buildPackages.buildPackages.androidenv.androidndk_10e;
androidndk = androidndk_10e;
targetAndroidndkPkgs = targetPackages.androidenv.androidndkPkgs_10e;
};
buildGradleApp = import ./build-gradle-app.nix {
inherit (pkgs) stdenv jdk gnumake gawk file runCommand
which gradle fetchurl buildEnv;
inherit androidsdk androidndk;
};
}