titaniumenv: fix android builds on darwin and get rid of allowUnfree since the OpenJDK just works fine

This commit is contained in:
Sander van der Burg 2016-02-01 15:11:28 +00:00
parent 0c5ad78c18
commit 4d0e732168
2 changed files with 35 additions and 7 deletions

View File

@ -20,6 +20,28 @@ let
security default-keychain -s login.keychain
security delete-keychain $keychainName
'';
# On Mac OS X, the java executable shows an -unoffical postfix in the version
# number. This confuses the build script's version detector.
# We fix this by creating a wrapper that strips it out of the output.
javaVersionFixWrapper = stdenv.mkDerivation {
name = "javaVersionFixWrapper";
buildCommand = ''
mkdir -p $out/bin
cat > $out/bin/javac <<EOF
#! ${stdenv.shell} -e
if [ "\$1" = "-version" ]
then
${jdk}/bin/javac "\$@" 2>&1 | sed "s|-unofficial||" | sed "s|-u60|_60|" >&2
else
exec ${jdk}/bin/javac "\$@"
fi
EOF
chmod +x $out/bin/javac
'';
};
in
stdenv.mkDerivation {
name = stdenv.lib.replaceChars [" "] [""] name;
@ -49,6 +71,13 @@ stdenv.mkDerivation {
${if target == "android" then
''
${stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
# Hack to make version detection work with OpenJDK on Mac OS X
export PATH=${javaVersionFixWrapper}/bin:$PATH
export JAVA_HOME=${javaVersionFixWrapper}
javac -version
''}
titanium config --config-file $TMPDIR/config.json --no-colors android.sdk ${androidsdkComposition}/libexec/android-sdk-*
titanium config --config-file $TMPDIR/config.json --no-colors android.buildTools.selectedVersion 23.0.1

View File

@ -5,17 +5,16 @@
, tiVersion ? "5.1.2.GA"
, rename ? false
, newBundleId ? "com.example.kitchensink", iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? "Example", iosCertificatePassword ? "", iosVersion ? "9.2"
, allowUnfree ? false
, enableWirelessDistribution ? false, installURL ? null
}:
let
pkgs = import nixpkgs { config.allowUnfree = allowUnfree; };
pkgs = import nixpkgs {};
in
rec {
kitchensink_android_debug = pkgs.lib.genAttrs systems (system:
let
pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
pkgs = import nixpkgs { inherit system; };
in
import ./kitchensink {
inherit (pkgs) fetchgit;
@ -26,7 +25,7 @@ rec {
kitchensink_android_release = pkgs.lib.genAttrs systems (system:
let
pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
pkgs = import nixpkgs { inherit system; };
in
import ./kitchensink {
inherit (pkgs) fetchgit;
@ -38,7 +37,7 @@ rec {
emulate_kitchensink_debug = pkgs.lib.genAttrs systems (system:
let
pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
pkgs = import nixpkgs { inherit system; };
in
import ./emulate-kitchensink {
inherit (pkgs) androidenv;
@ -47,7 +46,7 @@ rec {
emulate_kitchensink_release = pkgs.lib.genAttrs systems (system:
let
pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
pkgs = import nixpkgs { inherit system; };
in
import ./emulate-kitchensink {
inherit (pkgs) androidenv;
@ -74,7 +73,7 @@ rec {
};
} else {}) // (if rename then
let
pkgs = import nixpkgs { system = "x86_64-darwin"; config.allowUnfree = allowUnfree; };
pkgs = import nixpkgs { system = "x86_64-darwin"; };
in
{
kitchensink_ipa = import ./kitchensink {