chiark / gitweb /
Install Java 1.8 alongside 1.7 for retrolambda
authorDaniel Martí <mvdan@mvdan.cc>
Fri, 4 Sep 2015 04:44:59 +0000 (21:44 -0700)
committerDaniel Martí <mvdan@mvdan.cc>
Tue, 3 Nov 2015 10:08:34 +0000 (11:08 +0100)
Fixes #103.

buildserver/config.buildserver.py
buildserver/cookbooks/fdroidbuild-general/recipes/default.rb
examples/config.py
fdroidserver/common.py

index fd6277d4cc858c71efa682b07638e2b26ad4bc38..f9f114df5a90c3f395564eaaa140e2e421727d48 100644 (file)
@@ -3,3 +3,7 @@ ndk_paths = {
     'r9b': "/home/vagrant/android-ndk/r9b",
     'r10e': "/home/vagrant/android-ndk/r10e",
 }
+java_paths = {
+    '1.7': "/usr/lib/jvm/java-7-openjdk",
+    '1.8': "/usr/lib/jvm/java-8-openjdk",
+}
index f15e737ab597bb7271f65305f60846a828bb8281..e03145c331a12964e6d447a22c203cb9e76a3ca6 100644 (file)
@@ -10,7 +10,7 @@ execute "apt-get-update" do
   command "apt-get update"
 end
 
-%w{ant ant-contrib autoconf autoconf2.13 automake1.11 autopoint bison bzr cmake curl expect faketime flex gettext git-core git-svn gperf graphviz imagemagick inkscape javacc libarchive-zip-perl liblzma-dev librsvg2-bin libsaxonb-java libssl-dev libssl1.0.0 libtool make maven mercurial nasm openjdk-7-jdk optipng pandoc perlmagick pkg-config python python-yaml python-gnupg python-magic python-setuptools python3-gnupg quilt realpath scons subversion swig texinfo transfig unzip vorbis-tools xsltproc yasm zip}.each do |pkg|
+%w{ant ant-contrib autoconf autoconf2.13 automake1.11 autopoint bison bzr cmake curl expect faketime flex gettext git-core git-svn gperf graphviz imagemagick inkscape javacc libarchive-zip-perl liblzma-dev librsvg2-bin libsaxonb-java libssl-dev libssl1.0.0 libtool make maven mercurial nasm openjdk-7-jdk openjdk-8-jdk optipng pandoc perlmagick pkg-config python python-yaml python-gnupg python-magic python-setuptools python3-gnupg quilt realpath scons subversion swig texinfo transfig unzip vorbis-tools xsltproc yasm zip}.each do |pkg|
   package pkg do
     action :install
   end
@@ -35,4 +35,8 @@ execute "add-bsenv" do
   not_if "grep bsenv /home/#{user}/.bashrc"
 end
 
+execute "set-default-java" do
+  user user
+  command "update-java-alternatives --set java-7-openjdk"
+end
 
index 536bcc19b66f92856a7239491649c709124ebabf..b72b18a128f460386924ace5224b7af7b4923f46 100644 (file)
 #     'r10e': "$ANDROID_NDK",
 # }
 
+# If you want to build apps that use retrolambda and Java 1.8, you'll need to
+# have both 1.7 and 1.8 installed.
+# java_paths = {
+#     '1.7': "/usr/lib/jvm/java-7-openjdk",
+#     '1.8': None,
+# }
+
 # Build tools version to be used
 # build_tools = "23.0.1"
 
index 3e88697668ebb72a48eed0c43ba6d848fb69ba4a..2d44fc9c52748ae5584260be852cceebc80ad137 100644 (file)
@@ -57,6 +57,10 @@ default_config = {
         'r10e': "$ANDROID_NDK",
     },
     'build_tools': "23.0.1",
+    'java_paths': {
+        '1.7': "/usr/lib/jvm/java-7-openjdk",
+        '1.8': None,
+    },
     'ant': "ant",
     'mvn3': "mvn",
     'gradle': 'gradle',
@@ -122,7 +126,7 @@ def fill_config_defaults(thisconfig):
             thisconfig[k] = exp
             thisconfig[k + '_orig'] = v
 
-    for k in ['ndk_paths']:
+    for k in ['ndk_paths', 'java_paths']:
         d = thisconfig[k]
         for k2 in d.copy():
             v = d[k2]
@@ -185,6 +189,11 @@ def read_config(opts, config_file='config.py'):
     for n in ['ANDROID_HOME', 'ANDROID_SDK']:
         env[n] = config['sdk_path']
 
+    for v in ['7', '8']:
+        cpath = config['java_paths']['1.%s' % v]
+        if cpath:
+            env['JAVA%s_HOME' % v] = cpath
+
     for k in ["keystorepass", "keypass"]:
         if k in config:
             write_password_file(k)