summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/android/java/base.xml55
-rw-r--r--build/android/ant/chromium-jars.xml64
-rw-r--r--build/android/ant/common.xml78
-rw-r--r--build/android/ant/sdk-targets.xml97
-rw-r--r--build/apk_test.gypi13
-rw-r--r--build/java.gypi4
-rw-r--r--chrome/android/java/chrome.xml19
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/IntentHelper.java2
-rw-r--r--chrome/chrome.gyp19
-rw-r--r--chrome/chrome_tests.gypi1
-rw-r--r--content/content_shell.gypi5
-rw-r--r--content/content_tests.gypi5
-rw-r--r--content/public/android/java/content.xml59
-rw-r--r--content/shell/android/java/content_shell_apk.xml39
-rw-r--r--content/shell/android/javatests/content_shell_test_apk.xml11
-rw-r--r--media/base/android/java/media.xml52
-rw-r--r--net/android/java/net.xml49
-rwxr-xr-xtesting/android/generate_native_test.py4
-rw-r--r--testing/android/native_test.gyp5
-rw-r--r--testing/android/native_test_apk.xml26
20 files changed, 391 insertions, 216 deletions
diff --git a/base/android/java/base.xml b/base/android/java/base.xml
index 8698341..e315875 100644
--- a/base/android/java/base.xml
+++ b/base/android/java/base.xml
@@ -1,52 +1,15 @@
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+-->
<project name="Base" default="dist" basedir=".">
<description>
building base java source code with ant
</description>
- <!-- Set global properties for this build -->
- <property name="src" location="src"/>
- <property name="dist" location="dist"/>
- <property name="out.dir" location="${PRODUCT_DIR}/lib.java"/>
- <!-- TODO(jrg): establish a standard for the intermediate java
- directories. Settle on a standard once ant/jar build files
- like this are androidified -->
- <property name="dest.dir" location="${PRODUCT_DIR}/java/base"/>
+ <import file="../../../build/android/ant/chromium-jars.xml" />
- <target name="init">
- <!-- Create the time stamp -->
- <tstamp/>
- <!-- Create the build directory structure used by compile -->
- <mkdir dir="${out.dir}"/>
- <mkdir dir="${dest.dir}"/>
- </target>
-
- <target name="compile" depends="init"
- description="compile the source " >
- <!-- Compile the java code from ${src} into ${build} -->
- <!-- TODO(jrg): adapting this to a proper android antfile will
- remove warnings like this:
- base.xml:23: warning: 'includeantruntime' was not set,
- defaulting to build.sysclasspath=last;
- set to false for repeatable builds
- -->
- <javac srcdir="${src}" destdir="${dest.dir}" debug="true" includeantruntime="false">
- <classpath>
- <path location="${ANDROID_SDK}/android.jar"/>
- </classpath>
- </javac>
- </target>
-
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <!-- Create the distribution directory -->
- <mkdir dir="${out.dir}"/>
-
- <jar jarfile="${out.dir}/chromium_base.jar" basedir="${dest.dir}"/>
- </target>
-
- <target name="clean"
- description="clean up" >
- <!-- Delete the appropriate directory trees -->
- <delete dir="${dest.dir}"/>
- <delete dir="${dist}"/>
- </target>
+ <path id="javac.custom.classpath">
+ <pathelement location="${ANDROID_SDK}/android.jar" />
+ </path>
</project>
diff --git a/build/android/ant/chromium-jars.xml b/build/android/ant/chromium-jars.xml
new file mode 100644
index 0000000..dbe01ea
--- /dev/null
+++ b/build/android/ant/chromium-jars.xml
@@ -0,0 +1,64 @@
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+-->
+<project name="chromium-jars" default="dist">
+ <!--
+ Common ant build file for for chromium_*.jars.
+ For creating a new chromium_*.jar :
+ 1. Use build/java.gyp action. This action will set PACKAGE_NAME.
+ The jar will be created as chromium_${PACKAGE_NAME} in
+ ${PRODUCT_DIR}/lib.java.
+ 2. Set javac.custom.classpath to classpath to use for javac.
+ 3. Override javac.srcdir for providing custom source directory for javac.
+ -->
+
+ <import file="common.xml"/>
+ <property-location name="src" location="src"/>
+ <property-location name="lib.dir" location="${PRODUCT_DIR}/lib.java"
+ check-exists="false"/>
+ <property-location name="dest.dir" location="${PRODUCT_DIR}/java/${PACKAGE_NAME}"
+ check-exists="false"/>
+
+ <target name="init">
+ <!-- Create the time stamp -->
+ <tstamp/>
+ <!-- Create the build directory structure used by compile -->
+ <mkdir dir="${lib.dir}"/>
+ <mkdir dir="${dest.dir}"/>
+ </target>
+
+ <!--
+ Compile target for jars. Requires javac.custom.classpath to be set.
+ Optionally javac.srcdir can be overridden to custom path for src
+ directories.
+ -->
+ <target name="compile" depends="init" description="Compiles source." >
+ <fail message="Error: javac.custom.classpath is not set. Please set it to
+ classpath for javac.">
+ <condition>
+ <not><isreference refid="javac.custom.classpath"/></not>
+ </condition>
+ </fail>
+ <property-value name="javac.srcdir" value ="${src}"/>
+ <echo>Compiling ${javac.srcdir}, classpath: ${toString:javac.custom.classpath}</echo>
+ <javac srcdir="${javac.srcdir}" destdir="${dest.dir}" debug="true" includeantruntime="false">
+ <classpath>
+ <path refid="javac.custom.classpath" />
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="dist" depends="compile"
+ description="Generate chromium_${PACKAGE_NAME}.jar.">
+ <!-- Create the distribution directory -->
+ <mkdir dir="${lib.dir}" />
+ <jar jarfile="${lib.dir}/chromium_${PACKAGE_NAME}.jar" basedir="${dest.dir}"/>
+ </target>
+
+ <target name="clean" description="clean up">
+ <!-- Delete the appropriate directory trees -->
+ <delete dir="${dest.dir}" />
+ </target>
+</project>
diff --git a/build/android/ant/common.xml b/build/android/ant/common.xml
new file mode 100644
index 0000000..c7c730b
--- /dev/null
+++ b/build/android/ant/common.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+-->
+<project name="chrome_common_defines">
+ <!-- Common build properties for Chrome for android. -->
+
+ <!--
+ Macro for checking that a property is correctly set. Performs checks for:
+ 1. Property is set and not null.
+ 2. String value of property does not contains any '$' signs.
+ -->
+ <macrodef name="check-property-value">
+ <attribute name="property"/>
+ <sequential>
+ <fail message ="Property @{property} is not set.">
+ <condition>
+ <or>
+ <not><isset property="@{property}"/></not>
+ <length string="${@{property}}" trim="true" when="less" length="1"/>
+ </or>
+ </condition>
+ </fail>
+ <!--
+ Check for $ signs. This catches errors when properties are initialized from environment
+ variables. E.g. if we have <property name="foo" value="${env.bar}" /> but env.bar is
+ not set then foo will have the literal value of '${env.bar}'.
+ -->
+ <fail message="Value checked failed for property: @{property} : ${@{property}}.
+ Property value contains an uninitialized environment variable.">
+ <condition>
+ <contains string="${@{property}}" substring="$"/>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <!--
+ A safe setter for location properties. Checks that a location is not
+ empty and actually exists. For specifying output directories, location
+ check can be disabled by specifying check-exists="false".
+ -->
+ <macrodef name="property-location">
+ <attribute name="name"/>
+ <attribute name="location"/>
+ <attribute name="check-exists" default="true"/>
+ <sequential>
+ <property name="@{name}" location="@{location}"/>
+ <check-property-value property="@{name}"/>
+ <fail message="Location specified for @{name} : @{location} does not exist.">
+ <condition>
+ <and>
+ <equals arg1="@{check-exists}" arg2="true"/>
+ <not><available type="dir" file="@{location}"/></not>
+ </and>
+ </condition>
+ </fail>
+ </sequential>
+ </macrodef>
+
+ <!-- A safe setter for property values -->
+ <macrodef name="property-value">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="@{value}"/>
+ <check-property-value property="@{name}"/>
+ </sequential>
+ </macrodef>
+
+ <!-- Common environment properties. -->
+ <property-location name="sdk.dir" location="${ANDROID_SDK_ROOT}"/>
+ <property-value name="target" value="android-${ANDROID_SDK_VERSION}"/>
+ <property name="source.dir" location="src"/>
+ <property-location name="toolchain.dir" location="${ANDROID_TOOLCHAIN}"/>
+</project>
diff --git a/build/android/ant/sdk-targets.xml b/build/android/ant/sdk-targets.xml
new file mode 100644
index 0000000..8f980b4
--- /dev/null
+++ b/build/android/ant/sdk-targets.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+-->
+<project name="chrome_sdk_overrides" >
+ <!--
+ Redefinition of targets used by SDK tools.
+ Supported version: SDK tools revision 20.
+
+ SDK tools do not allow easy way of extending classpaths
+ for aidl and javac. This file defines targets which can be used to
+ override targets used by tools.
+ -->
+
+ <!--
+ Override the -compile target.
+ This target requires 'javac.custom.classpath' to be set to reference
+ of classpath to be used for javac. Also accepts custom path for
+ sources: 'javac.custom.sourcepath'.
+ -->
+ <target
+ name="-compile"
+ depends="-build-setup, -pre-build, -code-gen, -pre-compile">
+ <do-only-if-manifest-hasCode elseText="hasCode = false. Skipping..." >
+ <!-- If souce path is not set, then use the default value -->
+ <if>
+ <condition>
+ <not>
+ <isreference refid="javac.custom.sourcepath"/>
+ </not>
+ </condition>
+ <then>
+ <path id="javac.custom.sourcepath">
+ <pathelement path="${source.absolute.dir}"/>
+ <pathelement path="${gen.absolute.dir}"/>
+ </path>
+ </then>
+ </if>
+ <javac
+ bootclasspathref="project.target.class.path"
+ classpathref="javac.custom.classpath"
+ debug="true"
+ destdir="${out.classes.absolute.dir}"
+ encoding="${java.encoding}"
+ extdirs=""
+ fork="${need.javac.fork}"
+ includeantruntime="false"
+ source="${java.source}"
+ target="${java.target}"
+ verbose="${verbose}">
+ <src path="${source.absolute.dir}"/>
+ <src path="${gen.absolute.dir}"/>
+ <src>
+ <path refid="javac.custom.sourcepath"/>
+ </src>
+ <compilerarg line="${java.compilerargs}"/>
+ </javac>
+ <!--
+ If the project is instrumented, then instrument the classes
+ TODO(shashishekhar): Add option to override emma filter.
+ -->
+ <if condition="${build.is.instrumented}">
+ <then>
+ <echo level="info">
+ Instrumenting classes from ${out.absolute.dir}/classes...
+ </echo>
+ <!-- build the default filter to remove R, Manifest, BuildConfig -->
+ <getemmafilter
+ appPackage="${project.app.package}"
+ filterOut="emma.default.filter"
+ libraryPackagesRefId="project.library.packages"/>
+ <!--
+ Define where the .em file is output.
+ This may have been setup already if this is a library.
+ -->
+ <property name="emma.coverage.absolute.file"
+ location="${out.absolute.dir}/coverage.em"/>
+ <!-- It only instruments class files, not any external libs -->
+
+ <emma enabled="true">
+ <instr
+ instrpath="${out.absolute.dir}/classes"
+ metadatafile="${emma.coverage.absolute.file}"
+ mode="overwrite"
+ outdir="${out.absolute.dir}/classes"
+ verbosity="${verbosity}">
+ <filter excludes="${emma.default.filter}"/>
+ <filter value="${emma.filter}"/>
+ </instr>
+ </emma>
+ </then>
+ </if>
+ </do-only-if-manifest-hasCode>
+ </target>
+</project>
diff --git a/build/apk_test.gypi b/build/apk_test.gypi
index 557499b..bd74105 100644
--- a/build/apk_test.gypi
+++ b/build/apk_test.gypi
@@ -45,9 +45,20 @@
'<(PRODUCT_DIR)/<(test_suite_name)_apk',
'--app_abi',
'<(android_app_abi)',
+ '--sdk-build=<(sdk_build)',
'--ant-args',
'-DPRODUCT_DIR=<(ant_build_out)',
- '--sdk-build=<(sdk_build)',
+ '--ant-args',
+ '-DANDROID_SDK=<(android_sdk)',
+ '--ant-args',
+ '-DANDROID_SDK_ROOT=<(android_sdk_root)',
+ '--ant-args',
+ '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
+ '--ant-args',
+ '-DANDROID_SDK_VERSION=<(android_sdk_version)',
+ '--ant-args',
+ '-DANDROID_TOOLCHAIN=<(android_toolchain)',
+ '--ant-compile'
],
}],
}], # 'OS == "android" and gtest_target_type == "shared_library"
diff --git a/build/java.gypi b/build/java.gypi
index 89f4c6b..f3d9798 100644
--- a/build/java.gypi
+++ b/build/java.gypi
@@ -47,6 +47,10 @@
'-DPRODUCT_DIR=<(ant_build_out)',
'-DPACKAGE_NAME=<(package_name)',
'-DANDROID_SDK=<(android_sdk)',
+ '-DANDROID_SDK_ROOT=<(android_sdk_root)',
+ '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
+ '-DANDROID_SDK_VERSION=<(android_sdk_version)',
+ '-DANDROID_TOOLCHAIN=<(android_toolchain)',
'-buildfile',
'<(java_in_dir)/<(package_name).xml',
]
diff --git a/chrome/android/java/chrome.xml b/chrome/android/java/chrome.xml
new file mode 100644
index 0000000..410af23
--- /dev/null
+++ b/chrome/android/java/chrome.xml
@@ -0,0 +1,19 @@
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+-->
+<project name="Chrome" default="dist" basedir=".">
+ <description>
+ Building chrome.jar from java source code.
+ </description>
+ <import file="../../../build/android/ant/chromium-jars.xml" />
+ <path id="javac.custom.classpath">
+ <pathelement location="${ANDROID_SDK}/android.jar" />
+ <pathelement location="${lib.dir}/chromium_content.jar" />
+ <pathelement location="${lib.dir}/chromium_base.jar" />
+ <pathelement location="${lib.dir}/chromium_net.jar" />
+ </path>
+ <!-- Override javac path to include jars in lib.java directory -->
+ <property-value name="javac.srcdir" value="${src}" />
+</project>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHelper.java
index 487d71d..ffc0695 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHelper.java
@@ -61,7 +61,7 @@ public abstract class IntentHelper {
send.putExtra(Intent.EXTRA_SUBJECT, subject);
send.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
try {
- Intent chooser = Intent.createChooser(send, chooserTitle));
+ Intent chooser = Intent.createChooser(send, chooserTitle);
// we start this activity outside the main activity.
chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(chooser);
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index eae32d9..e9a108c 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -1073,5 +1073,24 @@
},
]}, # 'targets'
], # OS=="win"
+ ['OS=="android"',
+ {
+ 'targets': [
+ {
+ 'target_name': 'chrome_java',
+ 'type': 'none',
+ 'dependencies': [
+ '../base/base.gyp:base_java',
+ '../content/content.gyp:content_java',
+ '../net/net.gyp:net_java',
+ ],
+ 'variables': {
+ 'package_name': 'chrome',
+ 'java_in_dir': '../chrome/android/java',
+ },
+ 'includes': [ '../build/java.gypi' ],
+ },
+ ]}, # 'targets'
+ ], # OS=="android"
], # 'conditions'
}
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 132ad87..f0bce86 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -4591,6 +4591,7 @@
'dependencies': [
'../base/base.gyp:base_java',
'../net/net.gyp:net_java',
+ 'chrome_java',
'unit_tests',
],
'variables': {
diff --git a/content/content_shell.gypi b/content/content_shell.gypi
index 9923bf9..272279b 100644
--- a/content/content_shell.gypi
+++ b/content/content_shell.gypi
@@ -647,6 +647,11 @@
'ant',
'-DPRODUCT_DIR=<(ant_build_out)',
'-DAPP_ABI=<(android_app_abi)',
+ '-DANDROID_SDK=<(android_sdk)',
+ '-DANDROID_SDK_ROOT=<(android_sdk_root)',
+ '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
+ '-DANDROID_SDK_VERSION=<(android_sdk_version)',
+ '-DANDROID_TOOLCHAIN=<(android_toolchain)',
'-buildfile',
'shell/android/java/content_shell_apk.xml',
# '<(CONFIGURATION_NAME)',
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index 50bb7db..8b4ac17 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -824,6 +824,11 @@
'ant',
'-DPRODUCT_DIR=<(ant_build_out)',
'-DAPP_ABI=<(android_app_abi)',
+ '-DANDROID_SDK=<(android_sdk)',
+ '-DANDROID_SDK_ROOT=<(android_sdk_root)',
+ '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
+ '-DANDROID_SDK_VERSION=<(android_sdk_version)',
+ '-DANDROID_TOOLCHAIN=<(android_toolchain)',
'-buildfile',
'<(DEPTH)/content/shell/android/javatests/content_shell_test_apk.xml',
]
diff --git a/content/public/android/java/content.xml b/content/public/android/java/content.xml
index 7e4cd98..1a6bd52 100644
--- a/content/public/android/java/content.xml
+++ b/content/public/android/java/content.xml
@@ -1,54 +1,19 @@
-<!-- Copyright (c) 2012 The Chromium Authors. All rights reserved.
-
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file.
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
-->
<project name="Content" default="dist" basedir=".">
<description>
building content java source code with ant
</description>
- <!-- set global properties for this build -->
- <property name="src" location="src"/>
- <property name="out.dir" location="${PRODUCT_DIR}/lib.java"/>
- <property name="classes.dir" location="${PRODUCT_DIR}/java/${PACKAGE_NAME}"/>
- <property name="jar.dir" location="${out.dir}"/>
-
- <target name="init">
- <!-- Create the time stamp -->
- <tstamp/>
- <!-- Create the build directory structure used by compile -->
- <mkdir dir="${out.dir}"/>
- </target>
-
- <target name="compile" depends="init"
- description="compile the source " >
- <!-- Create the classes output directory -->
- <mkdir dir="${classes.dir}"/>
-
- <!-- Compile the java code from ${src} into ${classes.dir} -->
- <!-- Gyp target should have compiled aidl files into java source files in
- lib.jar (see content.gyp:common_aidl). -->
- <javac srcdir="${src}:${out.dir}" destdir="${classes.dir}" debug="true" includeantruntime="false">
- <classpath>
- <pathelement path="${ANDROID_SDK}/android.jar" />
- <pathelement path="${jar.dir}/chromium_base.jar" />
- <pathelement path="${jar.dir}/chromium_net.jar" />
- </classpath>
- </javac>
- </target>
-
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <!-- Create the distribution directory -->
- <mkdir dir="${jar.dir}"/>
-
- <!-- Put everything in ${classes.dir} into the chromium_content.jar file -->
- <jar jarfile="${jar.dir}/chromium_${PACKAGE_NAME}.jar" basedir="${classes.dir}"/>
- </target>
+ <import file="../../../../build/android/ant/chromium-jars.xml" />
- <target name="clean" description="clean up" >
- <!-- Delete the generated content -->
- <delete dir="${classes.dir}"/>
- <delete file="${jar.dir}/chromium_${PACKAGE_NAME}.jar"/>
- </target>
+ <path id="javac.custom.classpath">
+ <pathelement location="${ANDROID_SDK}/android.jar" />
+ <pathelement location="${lib.dir}/chromium_base.jar" />
+ <pathelement location="${lib.dir}/chromium_net.jar" />
+ </path>
+ <!-- Override javac path to include jars in lib.java directory -->
+ <property-value name="javac.srcdir" value="${src}:${lib.dir}" />
</project>
diff --git a/content/shell/android/java/content_shell_apk.xml b/content/shell/android/java/content_shell_apk.xml
index 2b47611..9b2a674 100644
--- a/content/shell/android/java/content_shell_apk.xml
+++ b/content/shell/android/java/content_shell_apk.xml
@@ -5,25 +5,22 @@
found in the LICENSE file.
-->
<project name="ContentShell" default="debug" basedir=".">
-
<description>
Building ContentShell.apk
</description>
-
- <property environment="env"/>
- <property name="sdk.dir" location="${env.ANDROID_SDK_ROOT}"/>
- <property name="toolchain.dir" location="${env.ANDROID_TOOLCHAIN}"/>
- <property name="source.dir" location="src"/>
- <property name="target" value="android-${env.ANDROID_SDK_VERSION}"/>
- <property name="target.abi" value="${APP_ABI}"/>
- <property name="out.dir" location="${PRODUCT_DIR}/content_shell"/>
+ <import file="../../../../build/android/ant/common.xml"/>
+ <import file="../../../../build/android/ant/sdk-targets.xml"/>
+ <property-value name="target.abi" value="${APP_ABI}"/>
+ <property-location name="out.dir" location="${PRODUCT_DIR}/content_shell"
+ check-exists="false"/>
<property name="resource.absolute.dir" value="../res"/>
<property name="gen.absolute.dir" value="${out.dir}/gen"/>
+ <property name="jar.libs.dir" value="${out.dir}/java/libs"/>
<path id="native.libs.gdbserver">
<fileset file="${toolchain.dir}/../../gdbserver"/>
</path>
- <property name="native.libs.absolute.dir" location="${out.dir}/libs" />
- <property name="asset.absolute.dir" location="${out.dir}/assets" />
+ <property name="native.libs.absolute.dir" location="${out.dir}/libs"/>
+ <property name="asset.absolute.dir" location="${out.dir}/assets"/>
<path id="out.dex.jar.input.ref">
<fileset file="${out.dir}/java/libs/chromium_content.jar"/>
@@ -33,8 +30,7 @@
</path>
<property name="java.compilerargs" value="-classpath ${toString:out.dex.jar.input.ref}"/>
- <!-- We expect PRODUCT_DIR to be set like the gyp var
- (e.g. $ROOT/out/Debug) -->
+ <!-- We expect PRODUCT_DIR to be set like the gyp var (e.g. $ROOT/out/Debug) -->
<fail message="PRODUCT_DIR env var not set?">
<condition>
<not>
@@ -44,17 +40,19 @@
</fail>
<target name="-post-compile">
- <!-- copy gdbserver to main libs directory if building debug.
+ <!--
+ Copy gdbserver to main libs directory if building debug.
TODO(jrg): for now, Chrome on Android always builds native code
as Release and java/ant as Debug, which means we always install
gdbserver. Resolve this discrepancy, possibly by making this
- Release Official build java/ant as Release. -->
+ Release Official build java/ant as Release.
+ -->
<if>
<condition>
- <equals arg1="${build.target}" arg2="debug" />
+ <equals arg1="${build.target}" arg2="debug"/>
</condition>
<then>
- <echo message="Copying gdbserver to the apk to enable native debugging"/>
+ <echo message="Copying gdbserver to the apk to enable native debugging" />
<copy todir="${out.dir}/libs/${target.abi}">
<path refid="native.libs.gdbserver"/>
</copy>
@@ -62,6 +60,9 @@
</if>
</target>
- <import file="${sdk.dir}/tools/ant/build.xml" />
-
+ <!-- Classpath for javac -->
+ <path id="javac.custom.classpath">
+ <path refid="out.dex.jar.input.ref"/>
+ </path>
+ <import file="${sdk.dir}/tools/ant/build.xml"/>
</project>
diff --git a/content/shell/android/javatests/content_shell_test_apk.xml b/content/shell/android/javatests/content_shell_test_apk.xml
index ba8ba490..f4ba3f2 100644
--- a/content/shell/android/javatests/content_shell_test_apk.xml
+++ b/content/shell/android/javatests/content_shell_test_apk.xml
@@ -10,11 +10,8 @@
Building ContentShellTest.apk
</description>
- <property environment="env"/>
- <property name="sdk.dir" location="${env.ANDROID_SDK_ROOT}"/>
- <property name="toolchain.dir" location="${env.ANDROID_TOOLCHAIN}"/>
- <property name="source.dir" location="src"/>
- <property name="target" value="android-${env.ANDROID_SDK_VERSION}"/>
+ <import file="../../../../build/android/ant/common.xml"/>
+ <import file="../../../../build/android/ant/sdk-targets.xml"/>
<property name="target.abi" value="${APP_ABI}"/>
<property name="out.dir" location="${PRODUCT_DIR}/content_shell_test"/>
<property name="resource.absolute.dir" value="../res"/>
@@ -71,6 +68,10 @@
</target>
+ <!-- Classpath for javac -->
+ <path id="javac.custom.classpath">
+ <path refid="out.dex.jar.input.ref"/>
+ </path>
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>
diff --git a/media/base/android/java/media.xml b/media/base/android/java/media.xml
index 2dbec23..0504807 100644
--- a/media/base/android/java/media.xml
+++ b/media/base/android/java/media.xml
@@ -1,51 +1,17 @@
-<!-- Copyright (c) 2012 The Chromium Authors. All rights reserved.
-
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file.
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
-->
<project name="Media" default="dist" basedir=".">
<description>
building media java source code with ant
</description>
- <!-- set global properties for this build -->
- <property name="src" location="src"/>
- <property name="build" location="build"/>
- <property name="dist" location="dist"/>
- <property name="out.dir" location="${PRODUCT_DIR}/lib.java"/>
- <property name="dest.dir" location="${PRODUCT_DIR}/java/media"/>
-
- <target name="init">
- <!-- Create the time stamp -->
- <tstamp/>
- <!-- Create the build directory structure used by compile -->
- <mkdir dir="${out.dir}"/>
- <mkdir dir="${dest.dir}"/>
- </target>
-
- <target name="compile" depends="init"
- description="compile the source " >
- <!-- Compile the java code from ${src} into ${dest.dir} -->
- <javac srcdir="${src}" destdir="${dest.dir}" debug="true" includeantruntime="false">
- <classpath>
- <pathelement path="${ANDROID_SDK}/android.jar" />
- <pathelement path="${out.dir}/chromium_base.jar" />
- </classpath>
- </javac>
- </target>
-
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <!-- Create the distribution directory -->
- <mkdir dir="${out.dir}"/>
- <!-- Put everything in ${build} into the chromium_media.jar file -->
- <jar jarfile="${out.dir}/chromium_media.jar" basedir="${dest.dir}"/>
- </target>
+ <import file="../../../../build/android/ant/chromium-jars.xml"/>
- <target name="clean"
- description="clean up" >
- <!-- Delete the appropriate directory trees -->
- <delete dir="${dest.dir}"/>
- <delete dir="${dist}"/>
- </target>
+ <path id="javac.custom.classpath">
+ <pathelement location="${ANDROID_SDK}/android.jar"/>
+ <pathelement location="${lib.dir}/chromium_base.jar"/>
+ </path>
</project>
diff --git a/net/android/java/net.xml b/net/android/java/net.xml
index 22d3871..521f245 100644
--- a/net/android/java/net.xml
+++ b/net/android/java/net.xml
@@ -1,45 +1,16 @@
+<!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+-->
<project name="net" default="dist" basedir=".">
<description>
Building net/ java source code with ant.
</description>
- <!-- Set global properties for this build -->
- <property name="src" location="src"/>
- <property name="dist" location="dist"/>
- <property name="out.dir" location="${PRODUCT_DIR}/lib.java"/>
- <!-- TODO(jrg): establish a standard for the intermediate java
- directories. Settle on a standard once ant/jar build files
- like this are androidified -->
- <property name="dest.dir" location="${PRODUCT_DIR}/java/net"/>
+ <import file="../../../build/android/ant/chromium-jars.xml"/>
- <target name="init">
- <!-- Create the time stamp -->
- <tstamp/>
- <!-- Create the build directory structure used by compile -->
- <mkdir dir="${out.dir}"/>
- <mkdir dir="${dest.dir}"/>
- </target>
-
- <target name="compile" depends="init"
- description="compile the source " >
- <javac srcdir="${src}" destdir="${dest.dir}" debug="true" includeantruntime="false">
- <classpath>
- <path location="${ANDROID_SDK}/android.jar"/>
- <path location="${out.dir}/chromium_base.jar"/>
- </classpath>
- </javac>
- </target>
-
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <!-- Create the distribution directory -->
- <mkdir dir="${dist}/lib"/>
-
- <jar jarfile="${out.dir}/chromium_net.jar" basedir="${dest.dir}"/>
- </target>
-
- <target name="clean"
- description="clean up" >
- <delete dir="${dest.dir}"/>
- <delete dir="${dist}"/>
- </target>
+ <path id="javac.custom.classpath">
+ <pathelement location="${ANDROID_SDK}/android.jar"/>
+ <pathelement location="${lib.dir}/chromium_base.jar"/>
+ </path>
</project>
diff --git a/testing/android/generate_native_test.py b/testing/android/generate_native_test.py
index f5c3356..c5fc1ed 100755
--- a/testing/android/generate_native_test.py
+++ b/testing/android/generate_native_test.py
@@ -145,7 +145,7 @@ class NativeTestApkGenerator(object):
"""
cmd = ['ant']
if ant_args:
- cmd.append(ant_args)
+ cmd.extend(ant_args)
cmd.append("-DAPP_ABI=" + self._target_abi)
cmd.extend(['-buildfile',
os.path.join(self._output_directory, 'native_test_apk.xml')])
@@ -189,7 +189,7 @@ def main(argv):
help=('If specified, build the generated apk with ant. '
'Otherwise assume compiling within the Android '
'source tree using Android.mk.'))
- parser.add_option('--ant-args',
+ parser.add_option('--ant-args', action='append',
help='extra args for ant')
options, _ = parser.parse_args(argv)
diff --git a/testing/android/native_test.gyp b/testing/android/native_test.gyp
index fb21f27..38d2f39 100644
--- a/testing/android/native_test.gyp
+++ b/testing/android/native_test.gyp
@@ -39,6 +39,11 @@
'action': [
'ant',
'-DPRODUCT_DIR=<(ant_build_out)',
+ '-DANDROID_SDK=<(android_sdk)',
+ '-DANDROID_SDK_ROOT=<(android_sdk_root)',
+ '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
+ '-DANDROID_SDK_VERSION=<(android_sdk_version)',
+ '-DANDROID_TOOLCHAIN=<(android_toolchain)',
'-buildfile',
'<(DEPTH)/testing/android/native_test_apk.xml',
]
diff --git a/testing/android/native_test_apk.xml b/testing/android/native_test_apk.xml
index 444cf93..64d0e88 100644
--- a/testing/android/native_test_apk.xml
+++ b/testing/android/native_test_apk.xml
@@ -11,25 +11,25 @@ found in the LICENSE file.
Building native test runner ChromeNativeTests_replaceme.apk
</description>
- <property environment="env"/>
- <property name="sdk.dir" location="${env.ANDROID_SDK_ROOT}"/>
- <property name="sdk.version" value="${env.ANDROID_SDK_VERSION}"/>
- <property name="toolchain.dir" location="${env.ANDROID_TOOLCHAIN}"/>
- <property name="src" location="."/>
- <property name="source.dir" location="java/src"/>
+ <!--
+ TODO(yfriedman): This target can be invoked from multiple depths. So we use ${PRODUCT_DIR} to normalize the paths. This could be cleaned up.
+ -->
+ <import file="${PRODUCT_DIR}/../../build/android/ant/common.xml"/>
+ <import file="${PRODUCT_DIR}/../../build/android/ant/sdk-targets.xml"/>
+ <!--
+ TODO(yfriedman): Remove the need to specify this. We should generate the packages in a way such
+ that it's not required.
+ -->
+ <property name="source.absolute.dir" value="java/src"/>
+ <path id="javac.custom.classpath">
+ <pathelement location="${ANDROID_SDK}/android.jar" />
+ </path>
<property name="target.abi" value="${APP_ABI}"/>
- <property name="target" value="android-${env.ANDROID_SDK_VERSION}"/>
<path id="native.libs.gdbserver">
<fileset file="${toolchain.dir}/../../gdbserver"/>
</path>
- <condition property="location.base"
- value="${sdk.dir}"
- else="${sdk.dir}/platforms/android-${sdk.version}">
- <isset property="env.ANDROID_BUILD_TOP"/>
- </condition>
-
<!-- We expect PRODUCT_DIR to be set like the gyp var
(e.g. $ROOT/out/Debug) -->
<fail message="PRODUCT_DIR env var not set?">