|
| 1 | +<?xml version="1.0" encoding="UTF-8"?> |
| 2 | +<project name="compile-base" default="compile-base"> |
| 3 | + <description> |
| 4 | + Holds common imported definitions for ANT build.xml file(s) |
| 5 | + that build/generate artifacts |
| 6 | + </description> |
| 7 | + |
| 8 | + <dirname property="module.root.folder" file="${ant.file}"/> |
| 9 | + <property name="jna.parent.folder" value="${module.root.folder}"/> |
| 10 | + <import file="${jna.parent.folder}${file.separator}build-base.xml"/> |
| 11 | + |
| 12 | + <tstamp> |
| 13 | + <format property="year" pattern="yyyy" locale="en,US"/> |
| 14 | + </tstamp> |
| 15 | + <property name="copyright" value="Copyright &copy; 2007-${year} Timothy Wall. All Rights Reserved."/> |
| 16 | + <buildnumber/> |
| 17 | + |
| 18 | + <!-- JNA library release version - NOTE: this MUST match Maven --> |
| 19 | + <property name="jna.major" value="4"/> |
| 20 | + <property name="jna.minor" value="3"/> |
| 21 | + <property name="jna.revision" value="0"/> |
| 22 | + <property name="jna.build" value="0"/> <!--${build.number}--> |
| 23 | + <condition property="version.suffix" value="" else="-SNAPSHOT"> |
| 24 | + <or> |
| 25 | + <isset property="release"/> |
| 26 | + <isset property="maven-release"/> |
| 27 | + </or> |
| 28 | + </condition> |
| 29 | + <property name="jna.version" value="${jna.major}.${jna.minor}.${jna.revision}${version.suffix}"/> |
| 30 | + |
| 31 | + <property name="spec.title" value="Java Native Access (JNA)"/> |
| 32 | + <property name="spec.vendor" value="JNA Development Team"/> |
| 33 | + <property name="spec.version" value="${jna.major}"/> |
| 34 | + <property name="impl.title" value="com.sun.jna"/> |
| 35 | + <property name="impl.vendor" value="${spec.vendor}"/> |
| 36 | + <property name="impl.version" value="${jna.version} (b${jna.build})"/> |
| 37 | + |
| 38 | + <!-- +++++++++++++++ Supported platforms - Add other supported platforms here ++++++++++++++++ --> |
| 39 | + <condition property="jre.arch" value="x86"> |
| 40 | + <matches pattern="(i[3456]86|pentium)" string="${os.arch}"/> |
| 41 | + </condition> |
| 42 | + <condition property="jre.arch" value="x86-64"> |
| 43 | + <matches pattern="(x86_64|amd64|em64t)" string="${os.arch}"/> |
| 44 | + </condition> |
| 45 | + <condition property="jre.arch" value="ppc"> |
| 46 | + <matches pattern="(powerpc|power)" string="${os.arch}"/> |
| 47 | + </condition> |
| 48 | + <condition property="jre.arch" value="ppc64le"> |
| 49 | + <or> |
| 50 | + <matches pattern="(powerpc64le|power64le|ppc64le)" string="${os.arch}"/> |
| 51 | + <and> |
| 52 | + <matches pattern="(powerpc64|power64|ppc64)" string="${os.arch}"/> |
| 53 | + <matches pattern="little" string="${sun.cpu.endian}"/> |
| 54 | + </and> |
| 55 | + </or> |
| 56 | + </condition> |
| 57 | + <condition property="jre.arch" value="ppc64"> |
| 58 | + <matches pattern="(powerpc64|power64)" string="${os.arch}"/> |
| 59 | + </condition> |
| 60 | + <property name="jre.arch" value="${os.arch}"/> |
| 61 | + |
| 62 | + <!-- ++++++++++++ Maven related properties definitions +++++++++++++ --> |
| 63 | + <property name="maven.base.name" value="maven"/> |
| 64 | + <property name="maven.archiver.sub.folder.name" value="${maven.base.name}-archiver"/> |
| 65 | + <property name="maven.repository.root.folder.name" value=".m2"/> |
| 66 | + <property name="maven.repository.sub.folder.name" value="repository"/> |
| 67 | + <property name="maven.settings.file.name" value="settings.xml"/> |
| 68 | + <property name="maven.pom.file.name" value="pom.xml"/> |
| 69 | + <property name="maven.sources.classifier" value="sources"/> |
| 70 | + <property name="maven.install.location" value="${env.M2_HOME}"/> |
| 71 | + <condition property="mvn.exe.script.name" value="mvn.cmd" else="mvn"> |
| 72 | + <istrue value="${win32.local.shell}"/> |
| 73 | + </condition> |
| 74 | + |
| 75 | + <property name="mvn.executable" |
| 76 | + value="${maven.install.location}${file.separator}bin${file.separator}${mvn.exe.script.name}"/> |
| 77 | + <property name="maven.settings.file.path" value="${jna.parent.folder}${file.separator}${maven.settings.file.name}"/> |
| 78 | + <property name="maven.opts" value="-Xmx512m"/> |
| 79 | + <condition property="maven.local.repository.folder" |
| 80 | + value="${env.M2_REPO}" |
| 81 | + else="${user.home}${file.separator}${maven.repository.root.folder.name}${file.separator}${maven.repository.sub.folder.name}"> |
| 82 | + <isset property="env.M2_REPO"/> |
| 83 | + </condition> |
| 84 | + |
| 85 | + <!-- Procedure to execute the Maven script - SYNPOSIS: |
| 86 | +
|
| 87 | + <antcall target='run-mvn'> |
| 88 | + <param name='mvn.run.dir' value='wwww' /> |
| 89 | + <param name='mvn.run.opts' value='xxxxxx'/> |
| 90 | + <param name='mvn.arg.line' value='yyyyy'/> |
| 91 | + </antcall> |
| 92 | + |
| 93 | + Where: |
| 94 | + |
| 95 | + mvn.run.dir - folder to be used as CWD when running the script |
| 96 | + mvn.run.opts - options to be set to MAVEN_OPTS (e.g., -Xmx128) |
| 97 | + mvn.arg.line - line to be passed as argument to the invocation |
| 98 | + --> |
| 99 | + <target name="run-mvn"> |
| 100 | + <fail message="Cannot find ${mvn.executable} - check that M2_HOME environment variable set"> |
| 101 | + <condition> |
| 102 | + <not> |
| 103 | + <available file="${mvn.executable}" type="file"/> |
| 104 | + </not> |
| 105 | + </condition> |
| 106 | + </fail> |
| 107 | + |
| 108 | + <echo message="mvn ${mvn.arg.line}" level="info"/> |
| 109 | + <exec executable="${mvn.executable}" failonerror="true" dir="${mvn.run.dir}"> |
| 110 | + <env key="MAVEN_OPTS" value="${mvn.run.opts}"/> |
| 111 | + <!-- arg line="-s ${maven.settings.file.path}" / --> |
| 112 | + <arg line="${mvn.arg.line}"/> |
| 113 | + </exec> |
| 114 | + </target> |
| 115 | + |
| 116 | + <property name="maven.module.options" value="-Xmx728m"/> |
| 117 | + <property name="maven.full.test.options" |
| 118 | + value="-Dmaven.test.haltafterfailure=true -Dmaven.test.failure.ignore=false -Dmaven.test.error.ignore=false"/> |
| 119 | + |
| 120 | + <property name="maven.install.options" value="${maven.full.test.options} install"/> |
| 121 | + <target name="run-module-mvn"> |
| 122 | + <antcall target='run-mvn'> |
| 123 | + <param name='mvn.run.dir' value='${module.root.folder}'/> |
| 124 | + <param name='mvn.run.opts' value='${maven.module.options}'/> |
| 125 | + <param name='mvn.arg.line' value='${maven.install.options}'/> |
| 126 | + </antcall> |
| 127 | + </target> |
| 128 | + |
| 129 | + <property name="maven.clean.options" value="build-helper:remove-project-artifact -DremoveAll=true clean"/> |
| 130 | + <target name="clean-module-mvn"> |
| 131 | + <antcall target='run-mvn'> |
| 132 | + <param name='mvn.run.dir' value='${module.root.folder}'/> |
| 133 | + <param name='mvn.run.opts' value='${maven.module.options}'/> |
| 134 | + <param name='mvn.arg.line' value='${maven.clean.options}'/> |
| 135 | + </antcall> |
| 136 | + </target> |
| 137 | + |
| 138 | + <target name="compile-base" depends="workspace-base"/> |
| 139 | + <target name="compile" depends="run-module-mvn" |
| 140 | + description="Runs the mvn install command - including all the tests"/> |
| 141 | + <target name="uncompile" depends="clean-module-mvn" |
| 142 | + description="Runs the mvn clean command - including un-install the artifact from Maven local repository"/> |
| 143 | + <target name="recompile" depends="uncompile,compile" description="Re-compiles the module"/> |
| 144 | +</project> |
0 commit comments