You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.9 KiB
XML
120 lines
4.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Apocalypse Laboratories
|
|
Open Source License
|
|
|
|
Source code can be used for any purpose, as long as:
|
|
- Compiled binaries are rebranded and trademarks are not
|
|
visible by the end user at any time, except to give
|
|
credit to Apocalypse Laboratories, such as by showing
|
|
"Based on <product> by Apocalypse Laboratories" or a
|
|
similar notice;
|
|
- You do not use the code for evil;
|
|
- Rebranded compiled applications have significant
|
|
differences in functionality;
|
|
- and you provide your modified source code for download,
|
|
under the terms of the GNU LGPL v3 or a comparable
|
|
license.
|
|
|
|
Compiled binaries cannot be redistributed or mirrored,
|
|
unless:
|
|
- You have written permission from Apocalypse Laboratories;
|
|
- Downloads are not available from Apocalypse Laboratories,
|
|
not even behind a paywall or other blocking mechanism;
|
|
- or you have received a multi-computer license, in which
|
|
case you should take measures to prevent unauthorized
|
|
downloads, such as preventing download access from the
|
|
Internet.
|
|
-->
|
|
|
|
<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>
|