| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright (c) 2009, 2010 IBM Corporation and others. |
| All rights reserved. This program and the accompanying materials |
| are made available under the terms of the Eclipse Public License v1.0 |
| which accompanies this distribution, and is available at |
| http://www.eclipse.org/legal/epl-v10.html |
| |
| Contributors: |
| IBM Corporation - initial API and implementation |
| --> |
| |
| <project name="org.eclipse.swt.fragment" default="" basedir="."> |
| |
| <target name="init" depends="properties"> |
| <property name="compilerArg" value="" /> |
| <condition property="fragment" value="org.eclipse.swt.${swt.ws}.${swt.os}.${swt.arch}" else="org.eclipse.swt.${swt.ws}.${swt.os}"> |
| <isset property="swt.arch"/> |
| </condition> |
| <property name="full.name" value="${fragment}_${version.suffix}" /> |
| <property name="fragmentdir" value="${basedir}" /> |
| <property name="temp.folder" value="${fragmentdir}/temp.folder" /> |
| <property name="plugin.destination" value="${fragmentdir}" /> |
| <property name="build.result.folder" value="${fragmentdir}" /> |
| <property name="destination" value="${fragmentdir}/target" /> |
| <property name="javacVerbose" value="false" /> |
| <property name="logExtension" value=".xml" /> |
| <property name="javacSource" value="1.5" /> |
| <property name="javacTarget" value="1.5" /> |
| <condition property="bootclasspath" value=""> |
| <equals arg1="${swt.os}" arg2="macosx"/> |
| </condition> |
| <path id="path_bootclasspath"> |
| <fileset dir="${java.home}/lib"> |
| <include name="*.jar" /> |
| </fileset> |
| </path> |
| <property name="bootclasspath" refid="path_bootclasspath" /> |
| <property name="bundleJavacSource" value="${javacSource}" /> |
| <property name="bundleJavacTarget" value="${javacTarget}" /> |
| <property name="bundleBootClasspath" value="${bootclasspath}" /> |
| <condition property="p2.publish.parts" value="true"> |
| <istrue value="${p2.gathering}" /> |
| </condition> |
| <mkdir dir="target"/> |
| </target> |
| |
| <target name="properties" if="eclipse.running"> |
| <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" /> |
| </target> |
| |
| <target name="build.update.jar" depends="init"> |
| <delete dir="${temp.folder}" /> |
| <mkdir dir="${temp.folder}" /> |
| <antcall target="build.jars" /> |
| <antcall target="gather.bin.parts"> |
| <param name="destination.temp.folder" value="${temp.folder}/" /> |
| </antcall> |
| <zip zipfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="false" /> |
| <delete dir="${temp.folder}" /> |
| </target> |
| |
| <target name="@dot" depends="init" unless="@dot" description="Create jar: @dot."> |
| <property name="destdir" value="${temp.folder}/@dot.bin" /> |
| <property name="debug" value="true" /> |
| <property name="jar.filename" value="swt.jar" /> |
| <delete dir="${temp.folder}/@dot.bin" /> |
| <mkdir dir="${temp.folder}/@dot.bin" /> |
| <antcall target="copy.${swt.ws}.src"/> |
| <javac destdir="${temp.folder}/@dot.bin" verbose="${javacVerbose}" debug="${debug}" failonerror="no" bootclasspath="${bundleBootClasspath}" source="${bundleJavacSource}" target="${bundleJavacTarget}"> |
| <src path="${temp.folder}/@dot.src/"/> |
| <compilerarg line="-log '${temp.folder}'/@dot.bin${logExtension}" compiler="org.eclipse.jdt.core.JDTCompilerAdapter" /> |
| <compilerarg line="${compilerArg}" compiler="org.eclipse.jdt.core.JDTCompilerAdapter" /> |
| </javac> |
| <copy todir="${temp.folder}/@dot.bin"> |
| <fileset dir="${temp.folder}/@dot.src/" excludes="**/*.java,**/package.htm*,**/library/" /> |
| </copy> |
| <mkdir dir="${build.result.folder}/@dot" /> |
| <copy todir="${build.result.folder}/@dot" failonerror="true"> |
| <fileset dir="${temp.folder}/@dot.bin" /> |
| </copy> |
| <condition property="arch" value="${swt.arch}" else=""> |
| <isset property="swt.arch"/> |
| </condition> |
| <jar jarfile="${build.result.folder}/${jar.filename}" basedir="${temp.folder}/@dot.bin"> |
| <manifest> |
| <attribute name="SWT-OS" value="${swt.os}"/> |
| <attribute name="SWT-WS" value="${swt.ws}"/> |
| <attribute name="SWT-Arch" value="${arch}"/> |
| </manifest> |
| </jar> |
| <!--delete dir="${temp.folder}/@dot.bin" /> |
| <delete dir="${temp.folder}/@dot.src" /--> |
| </target> |
| |
| <target name="build.jars" depends="init"> |
| <available property="@dot" file="${build.result.folder}/@dot" /> |
| <antcall target="@dot" /> |
| </target> |
| |
| <target name="src.zip" depends="init" unless="src.zip"> |
| <mkdir dir="${build.result.folder}/" /> |
| <antcall target="copy.${swt.ws}.src"/> |
| <zip zipfile="${build.result.folder}/src.zip"> |
| <fileset dir="${temp.folder}/@dot.src" includes="**/*.java"/> |
| <fileset dir="${temp.folder}/@dot.src" includes="**/*.properties"/> |
| <fileset dir="${temp.folder}/@dot.src/library/" excludes="**/*.sh"/> |
| <zipfileset dir="${temp.folder}/@dot.src/library/" includes="**/*.sh" filemode="755"/> |
| <fileset dir="${temp.folder}/@dot.src" includes="**/version.txt"/> |
| <fileset dir="${fragmentdir}" includes="about.html,about_files/"/> |
| </zip> |
| <delete dir="${temp.folder}/@dot.src"/> |
| </target> |
| |
| <target name="copy.src" depends="init"> |
| <antcall target="copy.${swt.ws}.src"/> |
| <copy todir="${destination.temp.folder}/" failonerror="true" overwrite="true"> |
| <fileset dir="${temp.folder}/@dot.src" includes="**/*.java"/> |
| <fileset dir="${temp.folder}/@dot.src" includes="**/*.properties"/> |
| <fileset dir="${temp.folder}/@dot.src/library/"/> |
| <fileset dir="${temp.folder}/@dot.src" includes="**/version.txt"/> |
| <fileset dir="${fragmentdir}" includes="about.html,about_files/"/> |
| </copy> |
| <delete dir="${temp.folder}/@dot.src"/> |
| </target> |
| |
| <target name="copy.cocoa.src"> |
| <property name="copy.src.dir" value="${temp.folder}/@dot.src"/> |
| <delete dir="${copy.src.dir}" quiet="true"/> |
| <copy todir="${copy.src.dir}" failonerror="true" overwrite="true"> |
| <fileset dir="${plugindir}/Eclipse SWT/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/common_j2se/" excludes="**/*._properties"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/bidi/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/coolbar/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/expand/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/tooltip/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Accessibility/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Accessibility/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT AWT/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT AWT/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT WebKit/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Browser/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Browser/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Mozilla/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Mozilla/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Drag and Drop/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/cocoa/" excludes="**/*.extras,**/*.bridgesupport"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Printing/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Printing/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/cocoa/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Theme/emulated/"/> |
| <fileset dir="${plugindir}/components/" excludes="**/*.idl" /> |
| </copy> |
| <antcall target="copy.translationfiles"/> |
| <antcall target="replace64"/> |
| </target> |
| |
| <target name="copy.gtk.src"> |
| <property name="copy.src.dir" value="${temp.folder}/@dot.src"/> |
| <delete dir="${copy.src.dir}" quiet="true"/> |
| <copy todir="${copy.src.dir}" failonerror="true" overwrite="true"> |
| <fileset dir="${plugindir}/Eclipse SWT/cairo/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/common_j2se/" excludes="**/*._properties"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/bidi/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/coolbar/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/emulated/taskbar/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Accessibility/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Accessibility/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT AWT/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT AWT/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Browser/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Browser/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Mozilla/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Mozilla/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Drag and Drop/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/glx/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/cairo/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Printing/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Printing/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/cde/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/gnome/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Theme/gtk/"/> |
| <fileset dir="${plugindir}/Eclipse SWT WebKit/gtk/"/> |
| <fileset dir="${plugindir}/components/" excludes="**/*.idl" /> |
| </copy> |
| <antcall target="copy.translationfiles"/> |
| <antcall target="replace64"/> |
| </target> |
| |
| <target name="copy.win32.src"> |
| <property name="copy.src.dir" value="${temp.folder}/@dot.src"/> |
| <delete dir="${copy.src.dir}" quiet="true"/> |
| <copy todir="${copy.src.dir}" failonerror="true" overwrite="true"> |
| <fileset dir="${plugindir}/Eclipse SWT/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT/common_j2se/" excludes="**/*._properties"/> |
| <fileset dir="${plugindir}/Eclipse SWT/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Accessibility/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Accessibility/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT AWT/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT AWT/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Browser/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Browser/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Mozilla/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Mozilla/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT WebKit/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Drag and Drop/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OLE Win32/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT OpenGL/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT PI/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Printing/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Printing/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/common/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Program/win32/"/> |
| <fileset dir="${plugindir}/Eclipse SWT Theme/win32/"/> |
| <fileset dir="${plugindir}/components/" excludes="**/*.idl" /> |
| </copy> |
| <antcall target="copy.translationfiles"/> |
| <antcall target="replace64"/> |
| </target> |
| |
| <target name="copy.translationfiles" if="includetranslationfiles"> |
| <copy todir="${copy.src.dir}" failonerror="true" overwrite="true"> |
| <fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="**/*._properties"/> |
| <mapper type="glob" from="*._properties" to="*.properties" /> |
| </copy> |
| </target> |
| |
| <target name="is64"> |
| <condition property="is64" value="true"> |
| <or> |
| <equals arg1="${swt.arch}" arg2="x86_64"/> |
| <equals arg1="${swt.arch}" arg2="ia64"/> |
| <equals arg1="${swt.arch}" arg2="ppc64"/> |
| <equals arg1="${swt.arch}" arg2="ppc64le"/> |
| <equals arg1="${swt.arch}" arg2="s390x"/> |
| <equals arg1="${swt.arch}" arg2="sparc64"/> |
| <equals arg1="${swt.arch}" arg2="aarch64"/> |
| </or> |
| </condition> |
| <echo>Is64=${is64}</echo> |
| </target> |
| |
| <target name="replace64" depends="is64" unless="is64"> |
| <echo>Converting java files to 32 bit</echo> |
| <replace dir="${copy.src.dir}" includes="**/*.java" value="int /*long*/" token="long /*int*/"/> |
| <replace dir="${copy.src.dir}" includes="**/*.java" value="int[] /*long[]*/" token="long[] /*int[]*/"/> |
| <replace dir="${copy.src.dir}" includes="**/*.java" value="float /*double*/" token="double /*float*/"/> |
| <replace dir="${copy.src.dir}" includes="**/*.java" value="float[] /*double[]*/" token="double[] /*float[]*/"/> |
| </target> |
| |
| <target name="build.sources" depends="init"> |
| <available property="src.zip" file="${build.result.folder}/src.zip" /> |
| <antcall target="src.zip" /> |
| </target> |
| |
| <target name="build.zips" depends="init"> |
| </target> |
| |
| <target name="gather.sources" depends="init" if="destination.temp.folder"> |
| <mkdir dir="${destination.temp.folder}/${full.name}" /> |
| <copy file="${build.result.folder}/src.zip" todir="${destination.temp.folder}/${full.name}/" /> |
| <copy todir="${destination.temp.folder}/${full.name}"> |
| <fileset dir="${fragmentdir}" includes="about.html,about_files/" /> |
| </copy> |
| </target> |
| |
| <target name="gather.individual.sources" depends="init"> |
| <antcall target="copy.src" /> |
| <copy todir="${destination.temp.folder}"> |
| <fileset dir="${fragmentdir}" includes="about.html,about_files/" /> |
| </copy> |
| </target> |
| |
| <target name="gather.logs" depends="init" if="destination.temp.folder"> |
| <mkdir dir="${destination.temp.folder}/${full.name}" /> |
| <copy file="${temp.folder}/@dot.bin${logExtension}" todir="${destination.temp.folder}/${full.name}/" /> |
| </target> |
| |
| <target name="publish.bin.parts" depends="init" if="p2.publish.parts"> |
| <antcall target="gather.bin.parts"> |
| <param name="destination.temp.folder" value="${build.result.folder}" /> |
| </antcall> |
| <eclipse.gatherBundle metadataRepository="${p2.build.repo}" artifactRepository="${p2.build.repo}" buildResultFolder="${build.result.folder}" targetFolder="${build.result.folder}/${full.name}" /> |
| </target> |
| |
| <target name="gather.bin.parts" depends="init" if="destination.temp.folder"> |
| <mkdir dir="${destination.temp.folder}/${full.name}" /> |
| <copy todir="${destination.temp.folder}/${full.name}" failonerror="true"> |
| <fileset dir="${build.result.folder}/@dot" includes="**" /> |
| </copy> |
| <copy todir="${destination.temp.folder}/${full.name}"> |
| <fileset dir="${fragmentdir}" includes="fragment.properties,about.html,about_files/,swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libXm.so.2,META-INF/" /> |
| </copy> |
| <chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libXm.so.2" /> |
| <eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" /> |
| </target> |
| |
| <target name="swtdownload" depends="init"> |
| <delete dir="${temp.folder}" /> |
| <delete dir="${build.result.folder}/@dot" /> |
| <mkdir dir="${temp.folder}/swtdownload/" /> |
| <property name="includetranslationfiles" value="true" /> |
| <antcall target="build.jars"> |
| <param name="debug" value="true" /> |
| <param name="jar.filename" value="swt-debug.jar" /> |
| </antcall> |
| <jar jarfile="${build.result.folder}/swt-debug.jar" basedir="${fragmentdir}" update="true" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libXm.so.2" /> |
| <move file="${build.result.folder}/swt-debug.jar" todir="${temp.folder}/swtdownload" /> |
| <delete dir="${build.result.folder}/@dot" /> |
| <antcall target="build.jars"> |
| <param name="debug" value="false" /> |
| <param name="jar.filename" value="swt.jar" /> |
| </antcall> |
| <jar jarfile="${build.result.folder}/swt.jar" basedir="${fragmentdir}" update="true" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libXm.so.2" /> |
| <move file="${build.result.folder}/swt.jar" todir="${temp.folder}/swtdownload" /> |
| <delete dir="${build.result.folder}/@dot" /> |
| <antcall target="build.sources" /> |
| <move file="${build.result.folder}/src.zip" todir="${temp.folder}/swtdownload" /> |
| <copy file="${plugindir}/build/.project" todir="${temp.folder}/swtdownload" /> |
| <copy file="${plugindir}/build/.classpath" todir="${temp.folder}/swtdownload" /> |
| <copy todir="${temp.folder}/swtdownload"> |
| <fileset dir="${fragmentdir}" includes="about.html,about_files/" /> |
| </copy> |
| <condition property="zipfilename" value="swt-${buildid}-${swt.ws}-${swt.os}-${swt.arch}.zip" else="swt-${buildid}-${swt.ws}-${swt.os}.zip"> |
| <isset property="swt.arch"/> |
| </condition> |
| <zip zipfile="${destination}/${zipfilename}"> |
| <zipfileset dir="${temp.folder}/swtdownload/" /> |
| </zip> |
| <delete dir="${temp.folder}" /> |
| </target> |
| |
| <target name="clean" depends="init"> |
| <delete dir="${build.result.folder}/@dot" /> |
| <delete file="${build.result.folder}/src.zip" /> |
| <delete file="${plugin.destination}/${full.name}.jar" /> |
| <delete file="${plugin.destination}/${full.name}.zip" /> |
| <delete dir="${temp.folder}" /> |
| </target> |
| |
| <target name="refresh" depends="init" if="eclipse.running"> |
| <eclipse.refreshLocal resource="${fragment}" depth="infinite" /> |
| </target> |
| |
| <target name="zip.plugin" depends="init"> |
| <delete dir="${temp.folder}" /> |
| <mkdir dir="${temp.folder}" /> |
| <antcall target="build.jars" /> |
| <antcall target="build.sources" /> |
| <antcall target="gather.bin.parts"> |
| <param name="destination.temp.folder" value="${temp.folder}/" /> |
| </antcall> |
| <antcall target="gather.sources"> |
| <param name="destination.temp.folder" value="${temp.folder}/" /> |
| </antcall> |
| <delete> |
| <fileset dir="${temp.folder}" includes="**/*.bin.xml" /> |
| </delete> |
| <zip zipfile="${plugin.destination}/${full.name}.zip" basedir="${temp.folder}" filesonly="true" /> |
| <delete dir="${temp.folder}" /> |
| </target> |
| |
| <target name="jar.plugin" depends="init"> |
| <delete dir="${temp.folder}" /> |
| <mkdir dir="${temp.folder}" /> |
| <antcall target="build.jars" /> |
| <antcall target="gather.bin.parts"> |
| <param name="destination.temp.folder" value="${temp.folder}/" /> |
| </antcall> |
| <condition property="arch" value="${swt.arch}" else=""> |
| <isset property="swt.arch"/> |
| </condition> |
| <jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" manifest="${fragmentdir}/META-INF/MANIFEST.MF"> |
| <manifest> |
| <attribute name="SWT-OS" value="${swt.os}"/> |
| <attribute name="SWT-WS" value="${swt.ws}"/> |
| <attribute name="SWT-Arch" value="${arch}"/> |
| </manifest> |
| </jar> |
| <delete dir="${temp.folder}" /> |
| </target> |
| </project> |