|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
|
|
|
Copyright (c) 2015, Apocalypse Laboratories
|
|
|
|
All rights reserved.
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without modification,
|
|
|
|
are permitted provided that the following conditions are met:
|
|
|
|
|
|
|
|
1. Redistributions of source code must retain the above copyright notice, this
|
|
|
|
list of conditions and the following disclaimer.
|
|
|
|
|
|
|
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
this list of conditions and the following disclaimer in the documentation and/or
|
|
|
|
other materials provided with the distribution.
|
|
|
|
|
|
|
|
3. Neither the name of the copyright holder nor the names of its contributors
|
|
|
|
may be used to endorse or promote products derived from this software without
|
|
|
|
specific prior written permission.
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
|
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
|
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
|
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<project name="SyMAT" default="default" basedir=".">
|
|
|
|
<description>Builds, tests, and runs SyMAT.</description>
|
|
|
|
<import file="nbproject/build-impl.xml"/>
|
|
|
|
<!--
|
|
|
|
|
|
|
|
There exist several targets which are by default empty and which can be
|
|
|
|
used for execution of your tasks. These targets are usually executed
|
|
|
|
before and after some main targets. They are:
|
|
|
|
|
|
|
|
-pre-init: called before initialization of project properties
|
|
|
|
-post-init: called after initialization of project properties
|
|
|
|
-pre-compile: called before javac compilation
|
|
|
|
-post-compile: called after javac compilation
|
|
|
|
-pre-compile-single: called before javac compilation of single file
|
|
|
|
-post-compile-single: called after javac compilation of single file
|
|
|
|
-pre-compile-test: called before javac compilation of JUnit tests
|
|
|
|
-post-compile-test: called after javac compilation of JUnit tests
|
|
|
|
-pre-compile-test-single: called before javac compilation of single JUnit test
|
|
|
|
-post-compile-test-single: called after javac compilation of single JUunit test
|
|
|
|
-pre-jar: called before JAR building
|
|
|
|
-post-jar: called after JAR building
|
|
|
|
-post-clean: called after cleaning build products
|
|
|
|
|
|
|
|
(Targets beginning with '-' are not intended to be called on their own.)
|
|
|
|
|
|
|
|
Example of inserting an obfuscator after compilation could look like this:
|
|
|
|
|
|
|
|
<target name="-post-compile">
|
|
|
|
<obfuscate>
|
|
|
|
<fileset dir="${build.classes.dir}"/>
|
|
|
|
</obfuscate>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
For list of available properties check the imported
|
|
|
|
nbproject/build-impl.xml file.
|
|
|
|
|
|
|
|
|
|
|
|
Another way to customize the build is by overriding existing main targets.
|
|
|
|
The targets of interest are:
|
|
|
|
|
|
|
|
-init-macrodef-javac: defines macro for javac compilation
|
|
|
|
-init-macrodef-junit: defines macro for junit execution
|
|
|
|
-init-macrodef-debug: defines macro for class debugging
|
|
|
|
-init-macrodef-java: defines macro for class execution
|
|
|
|
-do-jar: JAR building
|
|
|
|
run: execution of project
|
|
|
|
-javadoc-build: Javadoc generation
|
|
|
|
test-report: JUnit report generation
|
|
|
|
|
|
|
|
An example of overriding the target for project execution could look like this:
|
|
|
|
|
|
|
|
<target name="run" depends="MeetLeeb-impl.jar">
|
|
|
|
<exec dir="bin" executable="launcher.exe">
|
|
|
|
<arg file="${dist.jar}"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
Notice that the overridden target depends on the jar target and not only on
|
|
|
|
the compile target as the regular run target does. Again, for a list of available
|
|
|
|
properties which you can use, check the target you are overriding in the
|
|
|
|
nbproject/build-impl.xml file.
|
|
|
|
|
|
|
|
-->
|
|
|
|
<target name="-unjar-and-copy-lib-jars">
|
|
|
|
<unjar dest="${build.classes.dir}">
|
|
|
|
<fileset dir="dist/lib">
|
|
|
|
<include name="**/*.jar"/>
|
|
|
|
</fileset>
|
|
|
|
<patternset>
|
|
|
|
<exclude name="META-INF/**"/>
|
|
|
|
<exclude name="/*"/>
|
|
|
|
</patternset>
|
|
|
|
</unjar>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target depends="init,compile,jar,-pre-pre-jar,-pre-jar,-unjar-and-copy-lib-jars" name="fat-jar">
|
|
|
|
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
|
|
|
<jar destfile="${dist.jar}">
|
|
|
|
<fileset dir="${build.classes.dir}"/>
|
|
|
|
<manifest>
|
|
|
|
<attribute name="Main-Class" value="${main.class}"/>
|
|
|
|
</manifest>
|
|
|
|
</jar>
|
|
|
|
<echo>To run this application from the command line without Ant, try (HAXX):</echo>
|
|
|
|
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
|
|
|
<echo>java -jar "${dist.jar.resolved}"</echo>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target depends="clean,fat-jar" name="clean-and-fat-jar"/>
|
|
|
|
</project>
|