Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="OsmAnd" default="help">
- <property file="local.properties" />
- <property file="ant.properties" />
- <loadproperties srcFile="project.properties" />
- <!-- quick check on sdk.dir -->
- <fail
- message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
- unless="sdk.dir"
- />
- <property name="use.dir" value="../../jni/java" />
- <property name="use.absolute.dir" location="${use.dir}" />
- <property name="raw.absolute.dir" location="raw" />
- <property name="base.dir" location="." />
- <!-- Puts the project's resources into the output package file
- This actually can create multiple resource package in case
- Some custom apk with specific configuration have been
- declared in default.properties.
- -->
- <target name="-package-resources" depends="-crunch">
- <!-- only package resources if *not* a library project -->
- <do-only-if-not-library elseText="Library project: do not package resources...">
- <aapt executable="${aapt}" command="package" versioncode="${version.code}" versionname="${version.name}" debug="${build.is.packaging.debug}" manifest="${out.manifest.abs.file}" assets="${asset.absolute.dir}" androidjar="${project.target.android.jar}" apkfolder="${out.absolute.dir}" nocrunch="${build.packaging.nocrunch}" resourcefilename="${resource.package.file.name}" resourcefilter="${aapt.resource.filter}" libraryResFolderPathRefid="project.library.res.folder.path" libraryPackagesRefid="project.library.packages" previousBuildType="${build.last.target}" buildType="${build.target}" ignoreAssets="${aapt.ignore.assets}">
- <res path="${out.res.absolute.dir}" />
- <res path="${resource.absolute.dir}" />
- <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
- <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
- </aapt>
- </do-only-if-not-library>
- <!-- osmchange -->
- <echo>Packaging aditional OsmAnd resources and assets... to ${out.packaged.file} from ${raw.absolute.dir}</echo>
- <exec executable="${aapt}">
- <!-- failonerror="true"> -->
- <arg value="package" />
- <arg value="-u" />
- <arg value="-F" />
- <arg value="${out.absolute.dir}/${resource.package.file.name}" />
- <arg value="${raw.absolute.dir}" />
- </exec>
- <!-- osmchange -->
- </target>
- <!-- Extra target -->
- <target name="-pre-build" depends="fix_apostrophe_issues">
- <delete dir="${raw.absolute.dir}" verbose="${verbose}" />
- <mkdir dir="${raw.absolute.dir}/classes" />
- <copy todir="${raw.absolute.dir}">
- <fileset dir="${use.absolute.dir}">
- <exclude name="**/*.java" />
- </fileset>
- </copy>
- <if>
- <condition>
- <isset property="versionFeatures" />
- </condition>
- <then>
- <replaceregexp file="res/values/no_translate.xml" match='versionFeatures">(.*)<' replace='versionFeatures">${versionFeatures}<' byline="true" />
- </then>
- </if>
- <if>
- <condition>
- <isset property="net.osmand" />
- </condition>
- <then>
- <replaceregexp file="AndroidManifest.xml" match='"@drawable/icon"' replace='"@drawable/icon_free"' byline="true" />
- <replaceregexp file="AndroidManifest.xml" match='package="net.osmand.plus"' replace='package="net.osmand"' byline="true" />
- <replaceregexp file="AndroidManifest.xml" match='android:process="net.osmand.plus"' replace='android:process="net.osmand"' byline="true" />
- <replaceregexp file="res/values/no_translate.xml" match='"app_name">(.*)<' replace='"app_name">OsmAnd<' byline="true" />
- <replaceregexp file="res/layout/search_address.xml" match='net.osmand.plus' replace='net.osmand' byline="true" />
- <replaceregexp file="res/layout/navigate_point.xml" match='net.osmand.plus' replace='net.osmand' byline="true" />
- </then>
- <else>
- <replaceregexp file="AndroidManifest.xml" match='"@drawable/icon_free"' replace='"@drawable/icon"' byline="true" />
- <replaceregexp file="AndroidManifest.xml" match='package="net.osmand"' replace='package="net.osmand.plus"' byline="true" />
- <replaceregexp file="AndroidManifest.xml" match='android:process="net.osmand"' replace='android:process="net.osmand.plus"' byline="true" />
- </else>
- </if>
- <if>
- <condition>
- <isset property="net.osmand.plus" />
- </condition>
- <then>
- <replaceregexp file="res/values/no_translate.xml" match='"app_name">(.*)<' replace='"app_name">OsmAnd+<' byline="true" />
- </then>
- </if>
- <if>
- <condition>
- <isset property="build.version.code" />
- </condition>
- <then>
- <replaceregexp file="AndroidManifest.xml" match='android:versionCode="(.*)"' replace='android:versionCode="${build.version.code}"' byline="true" />
- </then>
- </if>
- <if>
- <condition>
- <isset property="build.version" />
- </condition>
- <then>
- <replaceregexp file="res/values/no_translate.xml" match='"app_version">(.*)<' replace='"app_version">${build.version}<' byline="true" />
- </then>
- </if>
- </target>
- <!-- Compiles this project's .java files into .class files. -->
- <target name="-compile" depends="-build-setup, -pre-build, -code-gen, -pre-compile">
- <!-- osmchange : Osmand plus support -->
- <mkdir dir="${gen.absolute.dir}/net/osmand/plus"/>
- <copy todir="${gen.absolute.dir}/net/osmand/plus">
- <fileset dir="${gen.absolute.dir}/net/osmand">
- <include name="R.java" />
- </fileset>
- </copy>
- <replaceregexp file="${gen.absolute.dir}/net/osmand/plus/R.java" match='package net.osmand;' replace='package net.osmand.plus;' byline="true" />
- <!-- osmchange : Osmand plus support -->
- <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">
- <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}" />
- <!-- osmchange -->
- <src path="${use.absolute.dir}" />
- <exclude name="**/PlatformUtil.java" />
- <!-- osmchange -->
- </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>
- <path id="lib.path">
- <fileset dir="ant-lib" includes="*.jar" />
- </path>
- <!-- Import the actual build file.
- To customize existing targets, there are two options:
- - Customize only one target:
- - copy/paste the target into this file, *before* the
- <import> task.
- - customize it to your needs.
- - Customize the whole content of build.xml
- - copy/paste the content of the rules files (minus the top node)
- into this file, replacing the <import> task.
- - customize to your needs.
- ***********************
- ****** IMPORTANT ******
- ***********************
- In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
- in order to avoid having your file be overridden by tools such as "android update project"
- -->
- <!-- version-tag: custom -->
- <import file="${sdk.dir}/tools/ant/build.xml" />
- <taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" classpathref="lib.path" />
- <target name="cpd" description="Search for cut-and-pasted code">
- <property name="cpd.report.xml" location="cpd.xml"/>
- <cpd minimumTokenCount="100" format="xml" outputFile="${cpd.report.xml}"
- ignoreLiterals="true" ignoreIdentifiers="true">
- <fileset dir="${source.absolute.dir}" includes="**/*.java"/>
- </cpd>
- </target>
- <target name="fix_apostrophe_issues">
- <replace token="version='1.0'" value="version="1.0"">
- <fileset dir="res" includes="**/strings.xml"/>
- </replace>
- <replace token="encoding='utf-8'" value="encoding="utf-8"">
- <fileset dir="res" includes="**/strings.xml"/>
- </replace>
- <replaceregexp match="([^\\])'" replace="\1\\\\'" flags="-g" byline="off">
- <fileset dir="res" includes="**/strings.xml"/>
- </replaceregexp>
- </target>
- </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement