Merge branch 'master' into stdenv-updates.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
{ stdenv, androidsdk, jdk, ant }:
|
||||
{ name, src, platformVersions ? [ "8" ], useGoogleAPIs ? false
|
||||
, release ? false, keyStore ? null, keyAlias ? null, keyStorePassword ? null, keyAliasPassword ? null
|
||||
}:
|
||||
|
||||
assert release -> keyStore != null && keyAlias != null && keyStorePassword != null && keyAliasPassword != null;
|
||||
|
||||
let
|
||||
platformName = if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then "linux"
|
||||
else if stdenv.system == "x86_64-darwin" then "macosx"
|
||||
else throw "Platform: ${stdenv.system} is not supported!";
|
||||
|
||||
androidsdkComposition = androidsdk { inherit platformVersions useGoogleAPIs; };
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit name src;
|
||||
|
||||
ANDROID_HOME = "${androidsdkComposition}/libexec/android-sdk-${platformName}";
|
||||
|
||||
buildInputs = [ jdk ant ];
|
||||
|
||||
buildPhase = ''
|
||||
${stdenv.lib.optionalString release ''
|
||||
|
||||
# Provide key singing attributes
|
||||
( echo "key.store=${keyStore}"
|
||||
echo "key.alias=${keyAlias}"
|
||||
echo "key.store.password=${keyStorePassword}"
|
||||
echo "key.alias.password=${keyAliasPassword}"
|
||||
) >> ant.properties
|
||||
''}
|
||||
|
||||
export ANDROID_SDK_HOME=`pwd` # Key files cannot be stored in the user's home directory. This overrides it.
|
||||
ant ${if release then "release" else "debug"}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
mv bin/*-${if release then "release" else "debug"}.apk $out
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user