| <!-- |
| 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.gypi action. |
| The jar will be created as chromium_${PACKAGE_NAME} in |
| ${PRODUCT_DIR}/lib.java. |
| --> |
| <description> |
| Building ${PROJECT_NAME}/ java source code with ant. |
| </description> |
| |
| <import file="common.xml"/> |
| |
| <path id="javac.custom.classpath"> |
| <filelist files="${INPUT_JARS_PATHS}"/> |
| <pathelement location="${ANDROID_SDK}/android.jar"/> |
| </path> |
| |
| <path id="javac.srcdirs.additional"> |
| <filelist files="${ADDITIONAL_SRC_DIRS}"/> |
| <filelist files="${GENERATED_SRC_DIRS}"/> |
| </path> |
| |
| <property-value |
| name="javac.srcdir" |
| value="src:${toString:javac.srcdirs.additional}" |
| /> |
| |
| <property-location |
| name="dest.dir" |
| location="${PRODUCT_DIR}/java/${PACKAGE_NAME}" |
| check-exists="false" |
| /> |
| |
| <condition property="javac_includes_message" |
| value="" |
| else="Include filter: ${JAVAC_INCLUDES}"> |
| <equals arg1="${JAVAC_INCLUDES}" arg2=""/> |
| </condition> |
| |
| <target name="init"> |
| <!-- Create the time stamp --> |
| <tstamp/> |
| <!-- Create the build directory structure used by compile --> |
| <mkdir dir="${dest.dir}"/> |
| |
| <!-- Remove all .class files from dest.dir. This prevents inclusion of |
| incorrect .class files in the final .jar. For example, if a .java file |
| was deleted, the .jar should not contain the .class files for that |
| .java from previous builds. |
| --> |
| <delete> |
| <fileset dir="${dest.dir}" includes="**/*.class"/> |
| </delete> |
| </target> |
| |
| <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> |
| |
| <echo> |
| Compiling ${javac.srcdir}, classpath: ${toString:javac.custom.classpath} |
| ${javac_includes_message} |
| </echo> |
| |
| <!-- __LB_SHELL__ |
| Android SDK build toolchain doesn't support Java 1.7 so we force |
| the source and target versions to 1.6. Failure to do will result |
| in .class files that can't be parsed by the dexer. |
| --> |
| <javac |
| source="1.6" |
| target="1.6" |
| srcdir="${javac.srcdir}" |
| destdir="${dest.dir}" |
| classpathref="javac.custom.classpath" |
| debug="true" |
| includeantruntime="false" |
| includes="${JAVAC_INCLUDES}"> |
| <compilerarg value="-Xlint:unchecked"/> |
| </javac> |
| </target> |
| |
| <target name="dist" depends="compile" |
| description="Generate chromium_${PACKAGE_NAME}.jar."> |
| <!-- Create the distribution directory. We exclude R.class and R$*.class |
| files since new versions of these files with the correct resource -> ID |
| mapping will be provided when we build each individual apk. --> |
| <jar |
| jarfile="${lib.java.dir}/chromium_${PACKAGE_NAME}.jar" |
| excludes="**/R.class **/R$*.class" |
| basedir="${dest.dir}" |
| /> |
| |
| <!-- If Gyp thinks this output is stale but Ant doesn't, the modification |
| time should still be updated. Otherwise, this target will continue to |
| be rebuilt in future builds. |
| --> |
| <touch file="${lib.java.dir}/chromium_${PACKAGE_NAME}.jar"/> |
| </target> |
| |
| <target name="clean" description="clean up"> |
| <!-- Delete the appropriate directory trees --> |
| <delete dir="${dest.dir}"/> |
| </target> |
| </project> |