You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
4.7 KiB
92 lines
4.7 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<project name="custom_rules"> |
|
|
|
<!-- Enable AndroidAnnotations, see https://github.com/excilys/androidannotations/wiki/Building-Project-Ant --> |
|
<property name="generated.dir" value=".apt_generated" /> |
|
<property name="generated.absolute.dir" location="${generated.dir}" /> |
|
<property name="java.compilerargs" value="-s '${generated.absolute.dir}'" /> |
|
|
|
<target name="-pre-compile"> |
|
<mkdir dir="${generated.absolute.dir}" /> |
|
</target> |
|
|
|
<!-- copied (and modified) from $ANDROID_SDK_ROOT$/tools/ant/build.xml --> |
|
<target name="-compile" depends="-build-setup, -pre-build, -code-gen, -pre-compile"> |
|
<do-only-if-manifest-hasCode elseText="hasCode = false. Skipping..."> |
|
<!-- merge the project's own classpath and the tested project's classpath --> |
|
<path id="project.javac.classpath"> |
|
<fileset dir="compile-libs" includes="*.jar"/> |
|
<path refid="project.all.jars.path" /> |
|
<path refid="tested.project.classpath" /> |
|
</path> |
|
<javac encoding="${java.encoding}" |
|
source="${java.source}" target="${java.target}" |
|
debug="true" extdirs="" includeantruntime="false" |
|
destdir="${out.classes.absolute.dir}" |
|
bootclasspathref="project.target.class.path" |
|
verbose="${verbose}" |
|
classpathref="project.javac.classpath" |
|
fork="${need.javac.fork}"> |
|
<src path="${source.absolute.dir}" /> |
|
<src path="${gen.absolute.dir}" /> |
|
<compilerarg line="${java.compilerargs}" /> |
|
</javac> |
|
|
|
<!-- if the project is instrumented, intrument the classes --> |
|
<if condition="${build.is.instrumented}"> |
|
<then> |
|
<echo level="info">Instrumenting classes from ${out.absolute.dir}/classes...</echo> |
|
|
|
<!-- build the filter to remove R, Manifest, BuildConfig --> |
|
<getemmafilter |
|
appPackage="${project.app.package}" |
|
libraryPackagesRefId="project.library.packages" |
|
filterOut="emma.default.filter"/> |
|
|
|
<!-- define where the .em file is going. 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 verbosity="${verbosity}" |
|
mode="overwrite" |
|
instrpath="${out.absolute.dir}/classes" |
|
outdir="${out.absolute.dir}/classes" |
|
metadatafile="${emma.coverage.absolute.file}"> |
|
<filter excludes="${emma.default.filter}" /> |
|
<filter value="${emma.filter}" /> |
|
</instr> |
|
</emma> |
|
</then> |
|
</if> |
|
|
|
<!-- if the project is a library then we generate a jar file --> |
|
<if condition="${project.is.library}"> |
|
<then> |
|
<echo level="info">Creating library output jar file...</echo> |
|
<property name="out.library.jar.file" location="${out.absolute.dir}/classes.jar" /> |
|
<if> |
|
<condition> |
|
<length string="${android.package.excludes}" trim="true" when="greater" length="0" /> |
|
</condition> |
|
<then> |
|
<echo level="info">Custom jar packaging exclusion: ${android.package.excludes}</echo> |
|
</then> |
|
</if> |
|
|
|
<propertybyreplace name="project.app.package.path" input="${project.app.package}" replace="." with="/" /> |
|
|
|
<jar destfile="${out.library.jar.file}"> |
|
<fileset dir="${out.classes.absolute.dir}" |
|
includes="**/*.class" |
|
excludes="${project.app.package.path}/R.class ${project.app.package.path}/R$*.class ${project.app.package.path}/Manifest.class ${project.app.package.path}/Manifest$*.class ${project.app.package.path}/BuildConfig.class"/> |
|
<fileset dir="${source.absolute.dir}" excludes="**/*.java ${android.package.excludes}" /> |
|
</jar> |
|
</then> |
|
</if> |
|
|
|
</do-only-if-manifest-hasCode> |
|
</target> |
|
|
|
</project>
|
|
|