Add error check to plugin loader
This commit is contained in:
parent
9ae1c40e58
commit
efcbd19823
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
bin/
|
||||
dist/
|
||||
nbproject/
|
||||
*.exe
|
||||
/src/padkey
|
||||
/src/padkey
|
||||
/nbproject/private/
|
||||
/build/
|
68
build.xml
68
build.xml
@ -1,36 +1,14 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<!-- You may freely edit this file. See commented blocks below for -->
|
||||
<!-- some examples of how to customize the build. -->
|
||||
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
||||
<!-- By default, only the Clean and Build commands use this build script. -->
|
||||
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
||||
<!-- the Compile on Save feature is turned off for the project. -->
|
||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
||||
<!-- in the project's Project Properties dialog box.-->
|
||||
<project name="SyMAT" default="default" basedir=".">
|
||||
<description>Builds, tests, and runs SyMAT.</description>
|
||||
<description>Builds, tests, and runs the project SyMAT.</description>
|
||||
<import file="nbproject/build-impl.xml"/>
|
||||
<!--
|
||||
|
||||
@ -80,7 +58,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
An example of overriding the target for project execution could look like this:
|
||||
|
||||
<target name="run" depends="MeetLeeb-impl.jar">
|
||||
<target name="run" depends="SyMAT-impl.jar">
|
||||
<exec dir="bin" executable="launcher.exe">
|
||||
<arg file="${dist.jar}"/>
|
||||
</exec>
|
||||
@ -92,30 +70,4 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
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>
|
||||
|
@ -20,7 +20,6 @@ is divided into following sections:
|
||||
|
||||
-->
|
||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="SyMAT-impl">
|
||||
<import file="build-native.xml"/>
|
||||
<fail message="Please build using Ant 1.8.0 or higher.">
|
||||
<condition>
|
||||
<not>
|
||||
@ -183,9 +182,7 @@ is divided into following sections:
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or>
|
||||
<available file="${test.src.dir}"/>
|
||||
</or>
|
||||
<or/>
|
||||
</condition>
|
||||
<condition property="have.sources">
|
||||
<or>
|
||||
@ -277,7 +274,6 @@ is divided into following sections:
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init" name="-init-check">
|
||||
<fail unless="src.dir">Must set src.dir</fail>
|
||||
<fail unless="test.src.dir">Must set test.src.dir</fail>
|
||||
<fail unless="build.dir">Must set build.dir</fail>
|
||||
<fail unless="dist.dir">Must set dist.dir</fail>
|
||||
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
|
||||
@ -459,9 +455,6 @@ is divided into following sections:
|
||||
<property name="junit.forkmode" value="perTest"/>
|
||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
|
||||
<batchtest todir="${build.test.results.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
|
||||
<filename name="@{testincludes}"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
|
||||
<filename name="${test.binarytestincludes}"/>
|
||||
</fileset>
|
||||
@ -490,11 +483,7 @@ is divided into following sections:
|
||||
<condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
|
||||
<isset property="test.method"/>
|
||||
</condition>
|
||||
<union id="test.set">
|
||||
<fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
|
||||
<filename name="@{testincludes}"/>
|
||||
</fileset>
|
||||
</union>
|
||||
<union id="test.set"/>
|
||||
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
|
||||
<testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="SyMAT" testname="TestNG tests" workingDir="${work.dir}">
|
||||
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
|
||||
@ -603,9 +592,6 @@ is divided into following sections:
|
||||
<property name="junit.forkmode" value="perTest"/>
|
||||
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}">
|
||||
<batchtest todir="${build.test.results.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
|
||||
<filename name="@{testincludes}"/>
|
||||
</fileset>
|
||||
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
|
||||
<filename name="${test.binarytestincludes}"/>
|
||||
</fileset>
|
||||
@ -1305,13 +1291,11 @@ is divided into following sections:
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target if="do.depend.true" name="-compile-test-depend">
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
|
||||
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir=""/>
|
||||
</target>
|
||||
<target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir=""/>
|
||||
<copy todir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-test">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
@ -1325,10 +1309,8 @@ is divided into following sections:
|
||||
<target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
|
||||
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
|
||||
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
|
||||
<copy todir="${build.test.classes.dir}">
|
||||
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
|
||||
</copy>
|
||||
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="" srcdir=""/>
|
||||
<copy todir="${build.test.classes.dir}"/>
|
||||
</target>
|
||||
<target name="-post-compile-test-single">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
|
@ -1,953 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
*** GENERATED FROM TEMPLATE - DO NOT EDIT ***
|
||||
*** EDIT ../build.xml INSTEAD ***
|
||||
-->
|
||||
|
||||
<!--
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||
|
||||
Copyright 2013 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||
Other names may be trademarks of their respective owners.
|
||||
|
||||
The contents of this file are subject to the terms of either the GNU
|
||||
General Public License Version 2 only ("GPL") or the Common
|
||||
Development and Distribution License("CDDL") (collectively, the
|
||||
"License"). You may not use this file except in compliance with the
|
||||
License. You can obtain a copy of the License at
|
||||
http://www.netbeans.org/cddl-gplv2.html
|
||||
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||
specific language governing permissions and limitations under the
|
||||
License. When distributing the software, include this License Header
|
||||
Notice in each file and include the License file at
|
||||
nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||
particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the GPL Version 2 section of the License file that
|
||||
accompanied this code. If applicable, add the following below the
|
||||
License Header, with the fields enclosed by brackets [] replaced by
|
||||
your own identifying information:
|
||||
"Portions Copyrighted [year] [name of copyright owner]"
|
||||
|
||||
If you wish your version of this file to be governed by only the CDDL
|
||||
or only the GPL Version 2, indicate your decision by adding
|
||||
"[Contributor] elects to include this software in this distribution
|
||||
under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||
single choice of license, a recipient has the option to distribute
|
||||
your version of this file under either the CDDL, the GPL Version 2 or
|
||||
to extend the choice of license to its licensees as provided above.
|
||||
However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||
Version 2 license, then the option applies only if the new code is
|
||||
made subject to such option by the copyright holder.
|
||||
|
||||
Contributor(s):
|
||||
|
||||
Portions Copyrighted 2013 Sun Microsystems, Inc.
|
||||
-->
|
||||
|
||||
|
||||
<project name="Build Native Packages" default="build-native" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1"
|
||||
xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:fx="javafx:com.sun.javafx.tools.ant">
|
||||
<description>Native Packager Ant calls based on SE support in JavaFX packager</description>
|
||||
|
||||
<!-- Check system and JDK version -->
|
||||
|
||||
<target name="-check-operating-system">
|
||||
<condition property="running.on.mac">
|
||||
<os family="mac"/>
|
||||
</condition>
|
||||
<condition property="running.on.unix">
|
||||
<os family="unix"/>
|
||||
</condition>
|
||||
<condition property="running.on.windows">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<echo message="running.on.mac = ${running.on.mac}" level="verbose"/>
|
||||
<echo message="running.on.unix = ${running.on.unix}" level="verbose"/>
|
||||
<echo message="running.on.windows = ${running.on.windows}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Check availability of JavaFX SDK deployment support (ant-javafx.jar) -->
|
||||
|
||||
<target name="-check-endorsed-javafx-ant-classpath">
|
||||
<condition property="endorsed-javafx-ant-classpath-available">
|
||||
<and>
|
||||
<isset property="endorsed.javafx.ant.classpath"/>
|
||||
<not>
|
||||
<equals arg1="${endorsed.javafx.ant.classpath}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<echo message="endorsed-javafx-ant-classpath-available = ${endorsed-javafx-ant-classpath-available}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-property-javafx.sdk">
|
||||
<echo message="javafx.sdk = ${javafx.sdk}" level="verbose"/>
|
||||
<condition property="javafx.sdk.defined">
|
||||
<and>
|
||||
<isset property="javafx.sdk"/>
|
||||
<not><contains string="${javafx.sdk}" substring="$${platform" casesensitive="false"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="javafx.sdk.missing+default">
|
||||
<and>
|
||||
<equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/>
|
||||
<not><isset property="javafx.sdk.defined"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="javafx.sdk.missing-default">
|
||||
<and>
|
||||
<not><equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/></not>
|
||||
<not><isset property="javafx.sdk.defined"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
<echo message="javafx.sdk.defined = ${javafx.sdk.defined}" level="verbose"/>
|
||||
<echo message="javafx.sdk.missing+default = ${javafx.sdk.missing+default}" level="verbose"/>
|
||||
<echo message="javafx.sdk.missing-default = ${javafx.sdk.missing-default}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-ant-javafx-in-fxsdk-lib" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
|
||||
<condition property="do.set.ant-javafx.in.fxsdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${javafx.sdk}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-fxsdk-lib" depends="-check-ant-javafx-in-fxsdk-lib" if="do.set.ant-javafx.in.fxsdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${javafx.sdk}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-fxsdk-tools" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
|
||||
<condition property="do.set.ant-javafx.in.fxsdk.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${javafx.sdk}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-fxsdk-tools" depends="-set-ant-javafx-in-fxsdk-lib,-check-ant-javafx-in-fxsdk-tools" if="do.set.ant-javafx.in.fxsdk.tools">
|
||||
<property name="ant-javafx.jar.location" value="${javafx.sdk}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-platform-home-lib" if="platform.home">
|
||||
<condition property="do.set.ant-javafx.in.platform.home.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${platform.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-platform-home-lib" depends="-set-ant-javafx-in-fxsdk-tools,-check-ant-javafx-in-platform-home-lib" if="do.set.ant-javafx.in.platform.home.lib">
|
||||
<property name="ant-javafx.jar.location" value="${platform.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-platform-home-tools" if="platform.home">
|
||||
<condition property="do.set.ant-javafx.in.platform.home.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${platform.home}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-platform-home-tools" depends="-set-ant-javafx-in-platform-home-lib,-check-ant-javafx-in-platform-home-tools" if="do.set.ant-javafx.in.platform.home.tools">
|
||||
<property name="ant-javafx.jar.location" value="${platform.home}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-probjdk-lib" unless="ant-javafx.jar.location">
|
||||
<condition property="do.set.ant-javafx.in.probjdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${java.home}${file.separator}..${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-probjdk-lib" depends="-set-ant-javafx-in-platform-home-tools,-check-ant-javafx-in-probjdk-lib" if="do.set.ant-javafx.in.probjdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${java.home}${file.separator}..${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-probjdk-tools" unless="ant-javafx.jar.location">
|
||||
<condition property="do.set.ant-javafx.in.probjdk.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${java.home}${file.separator}..${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-probjdk-tools" depends="-set-ant-javafx-in-probjdk-lib,-check-ant-javafx-in-probjdk-tools" if="do.set.ant-javafx.in.probjdk.tools">
|
||||
<property name="ant-javafx.jar.location" value="${java.home}${file.separator}..${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-macjdk-lib" unless="ant-javafx.jar.location">
|
||||
<condition property="do.set.ant-javafx.in.macjdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${java.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-macjdk-lib" depends="-set-ant-javafx-in-probjdk-tools,-check-ant-javafx-in-macjdk-lib" if="do.set.ant-javafx.in.macjdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${java.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-envjdk-lib" unless="ant-javafx.jar.location">
|
||||
<property environment="env"/>
|
||||
<condition property="do.set.ant-javafx.in.envjdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${env.JAVA_HOME}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-envjdk-lib" depends="-set-ant-javafx-in-macjdk-lib,-check-ant-javafx-in-envjdk-lib" if="do.set.ant-javafx.in.envjdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${env.JAVA_HOME}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-envjdk-tools" unless="ant-javafx.jar.location">
|
||||
<property environment="env"/>
|
||||
<condition property="do.set.ant-javafx.in.envjdk.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${env.JAVA_HOME}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-envjdk-tools" depends="-set-ant-javafx-in-envjdk-lib,-check-ant-javafx-in-envjdk-tools" if="do.set.ant-javafx.in.envjdk.tools">
|
||||
<property name="ant-javafx.jar.location" value="${env.JAVA_HOME}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-pre-check-ant-javafx-version" depends="-set-ant-javafx-in-envjdk-tools" unless="ant-javafx-version-already-checked-in-jfximpl">
|
||||
<condition property="do.check.ant-javafx.version">
|
||||
<and>
|
||||
<isset property="ant-javafx.jar.location"/>
|
||||
<not><isset property="ant-javafx-version-already-checked-in-jfximpl"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-endorsed-javafx-ant-classpath" depends="-check-endorsed-javafx-ant-classpath,-pre-check-ant-javafx-version" if="endorsed-javafx-ant-classpath-available">
|
||||
<property name="javafx.ant.classpath" value="${endorsed.javafx.ant.classpath}:${ant-javafx.jar.location}"/>
|
||||
</target>
|
||||
<target name="-set-javafx-ant-classpath" depends="-check-endorsed-javafx-ant-classpath,-pre-check-ant-javafx-version" unless="endorsed-javafx-ant-classpath-available">
|
||||
<property name="javafx.ant.classpath" value="${ant-javafx.jar.location}"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-ant-javafx-version" depends="-pre-check-ant-javafx-version,
|
||||
-set-endorsed-javafx-ant-classpath,-set-javafx-ant-classpath" if="do.check.ant-javafx.version">
|
||||
<echo message="ant-javafx.jar.location = ${ant-javafx.jar.location}" level="verbose"/>
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
|
||||
uri="javafx:com.sun.javafx.tools.ant"
|
||||
classpath="${javafx.ant.classpath}"/>
|
||||
<condition property="have-fx-ant-init">
|
||||
<typefound name="javafx:com.sun.javafx.tools.ant:init-ant"/>
|
||||
</condition>
|
||||
<property name="ant-javafx-version-already-checked-in-jfximpl" value="true"/>
|
||||
<echo message="have-fx-ant-init = ${have-fx-ant-init}" level="verbose"/>
|
||||
</target>
|
||||
<target name="-check-jfx-sdk-version-old" depends="-check-ant-javafx-version" unless="have-fx-ant-init">
|
||||
<property name="javafx.ant.version" value="1.0"/>
|
||||
</target>
|
||||
<target name="-check-jfx-sdk-version-new" depends="-check-ant-javafx-version" if="have-fx-ant-init">
|
||||
<fx:init-ant/>
|
||||
<condition property="have-fx-ant-api-1.1">
|
||||
<!-- new features from JavaFX 2.0.2 are available in API version 1.1 or later -->
|
||||
<matches pattern="1.[1-9]" string="${javafx.ant.version}"/>
|
||||
</condition>
|
||||
<condition property="have-fx-ant-api-1.2">
|
||||
<!-- new features from JavaFX 2.2 are available in API version 1.2 or later -->
|
||||
<matches pattern="1.[2-9]" string="${javafx.ant.version}"/>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="-check-jfx-sdk-version" depends="-check-jfx-sdk-version-old, -check-jfx-sdk-version-new" unless="jfx.sdk.version.checked">
|
||||
<echo message="Detected JavaFX Ant API version ${javafx.ant.version}" level="info"/>
|
||||
<echo message="have-fx-ant-api-1.1 = ${have-fx-ant-api-1.1}" level="verbose"/>
|
||||
<echo message="have-fx-ant-api-1.2 = ${have-fx-ant-api-1.2}" level="verbose"/>
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<property name="jfx.sdk.version.checked" value="true"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-ant-jre-version" unless="ant-jre-version-checked-in-jfximpl">
|
||||
<local name="version-output"/>
|
||||
<exec executable="${java.home}${file.separator}bin${file.separator}java" outputproperty="version-output">
|
||||
<arg value="-version"/>
|
||||
</exec>
|
||||
<echo message="version-output:${line.separator}${version-output}" level="verbose"/>
|
||||
<condition property="have-ant-jre-pre7u6">
|
||||
<or>
|
||||
<contains string="${version-output}" substring="java version "1.0"/>
|
||||
<contains string="${version-output}" substring="java version "1.1"/>
|
||||
<contains string="${version-output}" substring="java version "1.2"/>
|
||||
<contains string="${version-output}" substring="java version "1.3"/>
|
||||
<contains string="${version-output}" substring="java version "1.4"/>
|
||||
<contains string="${version-output}" substring="java version "1.5"/>
|
||||
<contains string="${version-output}" substring="java version "1.6"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0""/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_01"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_02"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_03"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_04"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_05"/>
|
||||
</or>
|
||||
</condition>
|
||||
<property name="ant-jre-version-checked-in-jfximpl" value="true"/>
|
||||
<echo message="have-ant-jre-pre7u6 = ${have-ant-jre-pre7u6}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Native Packaging main target -->
|
||||
|
||||
<target name="build-native" depends="-set-do-build-native-package, -check-ant-jre-supports-native-packaging, -check-native-packager-external-tools, -fx-jar-impl, -build-native-impl, -post-build-native-cleanup"/>
|
||||
|
||||
<target name="build-native-noscript">
|
||||
<fail message="Java Application Native Packager requires JDK JavaScript support but has not found any."/>
|
||||
</target>
|
||||
|
||||
<target name="-check-do-jar">
|
||||
<condition property="do-jar-false">
|
||||
<and>
|
||||
<isset property="do.jar"/>
|
||||
<equals arg1="${do.jar}" arg2="false"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="-set-do-build-native-package">
|
||||
<property name="do.build.native.package" value="true"/>
|
||||
<echo message="do.build.native.package = ${do.build.native.package}" level="verbose"/>
|
||||
</target>
|
||||
<target name="-check-ant-jre-supports-native-packaging" depends="-check-jfx-sdk-version, -check-ant-javafx-version, -check-ant-jre-version">
|
||||
<fail message="Error:${line.separator}JavaFX native packager requires NetBeans to run on JDK 1.7u6 or later !" if="have-ant-jre-pre7u6"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-native-bundling-type" depends="-check-operating-system" if="do.build.native.package">
|
||||
<condition property="need.Inno.presence">
|
||||
<and>
|
||||
<isset property="running.on.windows"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="all" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="installer" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="exe" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="need.WiX.presence">
|
||||
<and>
|
||||
<isset property="running.on.windows"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="all" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="installer" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="msi" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="need.dpkg.presence">
|
||||
<and>
|
||||
<isset property="running.on.unix"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="deb" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="need.rpmbuild.presence">
|
||||
<and>
|
||||
<isset property="running.on.unix"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="rpm" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<echo message="need.Inno.presence:${need.Inno.presence}" level="verbose"/>
|
||||
<echo message="need.WiX.presence:${need.WiX.presence}" level="verbose"/>
|
||||
<echo message="need.dpkg.presence:${need.dpkg.presence}" level="verbose"/>
|
||||
<echo message="need.rpmbuild.presence:${need.rpmbuild.presence}" level="verbose"/>
|
||||
</target>
|
||||
<target name="-check-Inno-presence" depends="-check-native-bundling-type" if="need.Inno.presence">
|
||||
<local name="exec-output"/>
|
||||
<local name="exec-error"/>
|
||||
<local name="exec-result"/>
|
||||
<exec executable="iscc" outputproperty="exec-output" failifexecutionfails="false" errorproperty="exec-error" resultproperty="exec-result"/>
|
||||
<echo message="exec-output:${exec-output}" level="verbose"/>
|
||||
<echo message="exec-error:${exec-error}" level="verbose"/>
|
||||
<echo message="exec-result:${exec-result}" level="verbose"/>
|
||||
<condition property="missing.Inno">
|
||||
<not><and>
|
||||
<contains string="${exec-output}" substring="Inno Setup"/>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 1"/></not>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 2"/></not>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 3"/></not>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 4"/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-WiX-presence" depends="-check-native-bundling-type" if="need.WiX.presence">
|
||||
<local name="exec-output"/>
|
||||
<local name="exec-error"/>
|
||||
<local name="exec-result"/>
|
||||
<exec executable="candle" outputproperty="exec-output" failifexecutionfails="false" errorproperty="exec-error" resultproperty="exec-result">
|
||||
<arg value="-?"/>
|
||||
</exec>
|
||||
<echo message="exec-output:${exec-output}" level="verbose"/>
|
||||
<echo message="exec-error:${exec-error}" level="verbose"/>
|
||||
<echo message="exec-result:${exec-result}" level="verbose"/>
|
||||
<condition property="missing.WiX">
|
||||
<not><and>
|
||||
<contains string="${exec-output}" substring="Windows Installer Xml Compiler version"/>
|
||||
<not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 1"/></not>
|
||||
<not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 2"/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-dpkg-presence" depends="-check-native-bundling-type" if="need.dpkg.presence">
|
||||
<local name="exec.which.dpkg.result"/>
|
||||
<local name="exec.which.dpkg.output"/>
|
||||
<exec executable="command" failifexecutionfails="false" failonerror="false" resultproperty="exec.which.dpkg.result" outputproperty="exec.which.dpkg.output">
|
||||
<arg line="-v dpkg"/>
|
||||
</exec>
|
||||
<condition property="missing.dpkg">
|
||||
<not><and>
|
||||
<isset property="exec.which.dpkg.result"/>
|
||||
<equals arg1="${exec.which.dpkg.result}" arg2="0"/>
|
||||
<isset property="exec.which.dpkg.output"/>
|
||||
<not><equals arg1="${exec.which.dpkg.output}" arg2=""/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-rpmbuild-presence" depends="-check-native-bundling-type" if="need.rpmbuild.presence">
|
||||
<local name="exec.which.rpmbuild.result"/>
|
||||
<local name="exec.which.rpmbuild.output"/>
|
||||
<exec executable="command" failifexecutionfails="false" failonerror="false" resultproperty="exec.which.rpmbuild.result" outputproperty="exec.which.rpmbuild.output">
|
||||
<arg line="-v rpmbuild"/>
|
||||
</exec>
|
||||
<condition property="missing.rpmbuild">
|
||||
<not><and>
|
||||
<isset property="exec.which.rpmbuild.result"/>
|
||||
<equals arg1="${exec.which.rpmbuild.result}" arg2="0"/>
|
||||
<isset property="exec.which.rpmbuild.output"/>
|
||||
<not><equals arg1="${exec.which.rpmbuild.output}" arg2=""/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-native-packager-external-tools" depends="-check-Inno-presence, -check-WiX-presence, -check-dpkg-presence, -check-rpmbuild-presence">
|
||||
<property name="missing.Inno.message" value="JavaFX native packager requires external Inno Setup 5+ tools installed and included on PATH to create EXE installer. See http://www.jrsoftware.org/"/>
|
||||
<property name="missing.WiX.message" value="JavaFX native packager requires external WiX 3.0+ tools installed and included on PATH to create MSI installer. See http://wix.sourceforge.net/"/>
|
||||
<property name="missing.dpkg.message" value="JavaFX native packager requires Debian Packager tools to create DEB package, but dpkg could not be found."/>
|
||||
<property name="missing.rpmbuild.message" value="JavaFX native packager requires RPMBuild to create RPM package, but rpmbuild could not be found."/>
|
||||
<condition property="missing.Inno.WiX">
|
||||
<and>
|
||||
<isset property="missing.Inno"/>
|
||||
<isset property="missing.WiX"/>
|
||||
</and>
|
||||
</condition>
|
||||
<fail message="Error:${line.separator}${missing.Inno.message}${line.separator}${missing.WiX.message}" if="missing.Inno.WiX"/>
|
||||
<fail message="Error:${line.separator}${missing.Inno.message}" if="missing.Inno"/>
|
||||
<fail message="Error:${line.separator}${missing.WiX.message}" if="missing.WiX"/>
|
||||
<fail message="Error:${line.separator}${missing.dpkg.message}" if="missing.dpkg"/>
|
||||
<fail message="Error:${line.separator}${missing.rpmbuild.message}" if="missing.rpmbuild"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Copy dependent libraries -->
|
||||
|
||||
<target name="-jfx-copylibs" depends="init,compile,-pre-pre-jar,-pre-jar,-jfx-copylibs-warning" unless="fallback.no.javascript">
|
||||
<jfx-copylibs-js-impl/>
|
||||
</target>
|
||||
<target name="-jfx-copylibs-warning" if="fallback.no.javascript">
|
||||
<echo message="Warning: Dependent Libraries copy (-jfx-copylibs) skipped in fallback build mode due to JDK missing JavaScript support."/>
|
||||
</target>
|
||||
<macrodef name="jfx-copylibs-js-impl">
|
||||
<sequential>
|
||||
<local name="run.classpath.without.build.classes.and.dist.dir"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.and.dist.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${basedir}${file.separator}${build.classes.dir}" to=""/>
|
||||
<map from="${basedir}${file.separator}${dist.jar}" to=""/>
|
||||
<scriptmapper language="javascript">
|
||||
self.addMappedName(
|
||||
(source.indexOf("jfxrt.jar") >= 0) ||
|
||||
(source.indexOf("deploy.jar") >= 0) ||
|
||||
(source.indexOf("javaws.jar") >= 0) ||
|
||||
(source.indexOf("plugin.jar") >= 0)
|
||||
? "" : source
|
||||
);
|
||||
</scriptmapper>
|
||||
</pathconvert>
|
||||
<!-- add possibly missing dependencies at distance 2 (build system logic thus provides transitive closure) -->
|
||||
<local name="run.and.lib.classpath"/>
|
||||
<echo message="JavaScript: -jfx-copylibs" level="verbose"/>
|
||||
<script language="javascript">
|
||||
<![CDATA[
|
||||
function prefix(s, len) {
|
||||
if(s == null || len <= 0 || s.length == 0) {
|
||||
return new String("");
|
||||
}
|
||||
return new String(s.substr(0, len));
|
||||
}
|
||||
function defined(s) {
|
||||
return (s != null) && (s != "null") && (s.length > 0);
|
||||
}
|
||||
var classPath = new String(project.getProperty("run.classpath.without.build.classes.and.dist.dir"));
|
||||
if(defined(classPath)) {
|
||||
var fileSeparator = new String(project.getProperty("file.separator"));
|
||||
var pathConvert = project.createTask("pathconvert");
|
||||
pathConvert.setProperty("run.and.lib.classpath");
|
||||
var classPathCopy = pathConvert.createPath();
|
||||
classPathCopy.setPath(classPath);
|
||||
var pathArray;
|
||||
if(classPath.indexOf(";") != -1) {
|
||||
pathArray = classPath.split(";");
|
||||
} else {
|
||||
pathArray = classPath.split(":");
|
||||
}
|
||||
var added = new java.lang.StringBuilder();
|
||||
for (var i = 0; i < pathArray.length; i++) {
|
||||
var index = pathArray[i].lastIndexOf(fileSeparator);
|
||||
if (index >= 0) {
|
||||
var onePath = prefix(pathArray[i], index+1).concat("lib");
|
||||
var oneDir = new java.io.File(onePath);
|
||||
if(oneDir.exists()) {
|
||||
var fs = project.createDataType( "fileset" );
|
||||
fs.setDir( oneDir );
|
||||
fs.setIncludes("*.jar");
|
||||
var ds = fs.getDirectoryScanner(project);
|
||||
var srcFiles = ds.getIncludedFiles();
|
||||
for (var j = 0; j < srcFiles.length; j++) {
|
||||
if(classPath.indexOf( srcFiles[j] ) == -1 && added.indexOf( srcFiles[j] ) == -1) {
|
||||
var path = pathConvert.createPath();
|
||||
path.setPath( onePath.concat(fileSeparator).concat(srcFiles[j]) );
|
||||
added.append( srcFiles[j] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pathConvert.perform();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
<echo message="run.and.lib.classpath = ${run.and.lib.classpath}" level="verbose"/>
|
||||
<property name="run.and.lib.classpath" value=""/> <!-- fallback -->
|
||||
<delete dir="${dist.dir}${file.separator}lib" includeEmptyDirs="true" quiet="true"/>
|
||||
<copy todir="${dist.dir}${file.separator}lib" flatten="true" preservelastmodified="true" overwrite="true">
|
||||
<path>
|
||||
<pathelement path="${run.and.lib.classpath}"/>
|
||||
</path>
|
||||
</copy>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
|
||||
<!-- <fx:jar> replacing standard jar, because native packager up to JDK7u21 refuses to package standard jars -->
|
||||
|
||||
<target name="-fx-jar-impl" depends="-check-jfx-sdk-version, -check-ant-javafx-version, -check-ant-jre-version, clean, compile, -jfx-copylibs">
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<typedef name="fx_jar" classname="com.sun.javafx.tools.ant.FXJar" classpath="${javafx.ant.classpath}"/>
|
||||
<echo message="Launching <fx:jar> task from ${ant-javafx.jar.location}" level="info"/>
|
||||
<property name="deployment.dir" location="${dist.dir}"/>
|
||||
<basename property="deployment.jar" file="${dist.jar}"/>
|
||||
<property name="pp_jar_destfile" value="${deployment.dir}${file.separator}${deployment.jar}"/>
|
||||
<property name="pp_jar_buildclasses" value="${basedir}${file.separator}${build.classes.dir}"/>
|
||||
<property name="pp_jar_dir" value="${deployment.dir}"/>
|
||||
<property name="pp_jar_fs2" value="lib${file.separator}*.jar"/>
|
||||
<echo message="fx_jar: pp_jar_destfile = ${pp_jar_destfile}" level="verbose"/>
|
||||
<echo message="fx_jar: pp_jar_buildclasses = ${pp_jar_buildclasses}" level="verbose"/>
|
||||
<echo message="fx_jar: pp_jar_dir = ${pp_jar_dir}" level="verbose"/>
|
||||
<echo message="fx_jar: pp_jar_fs2 = ${pp_jar_fs2}" level="verbose"/>
|
||||
<echo message="JavaScript: fx-jar" level="verbose"/>
|
||||
<script language="javascript">
|
||||
<![CDATA[
|
||||
function isTrue(prop) {
|
||||
return prop != null &&
|
||||
( prop.toLowerCase() == "true" || prop.toLowerCase() == "yes" || prop.toLowerCase() == "on" );
|
||||
}
|
||||
function prefix(s, len) {
|
||||
if(s == null || len <= 0 || s.length == 0) {
|
||||
return new String("");
|
||||
}
|
||||
return new String(s.substr(0, len));
|
||||
}
|
||||
function replaceSuffix(s, os, ns) {
|
||||
return prefix(s, s.indexOf(os)).concat(ns);
|
||||
}
|
||||
function startsWith(s, prefix) {
|
||||
return (s != null) && (s.indexOf(prefix) == 0);
|
||||
}
|
||||
function endsWith(s, suffix) {
|
||||
var i = s.lastIndexOf(suffix);
|
||||
return (i != -1) && (i == (s.length - suffix.length));
|
||||
}
|
||||
function defined(s) {
|
||||
return (s != null) && (s != "null") && (s.length > 0);
|
||||
}
|
||||
function contains(array, prop) {
|
||||
for (var i = 0; i < array.length; i++) {
|
||||
var s1 = new String(array[i]);
|
||||
var s2 = new String(prop);
|
||||
if( s1.toLowerCase() == s2.toLowerCase() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var S = new String(java.io.File.separator);
|
||||
var JFXLAZY = "download.mode.lazy.jar";
|
||||
var fx_ant_api_1_1 = new String(project.getProperty("have-fx-ant-api-1.1"));
|
||||
var fx_ant_api_1_2 = new String(project.getProperty("have-fx-ant-api-1.2"));
|
||||
|
||||
// get jars with lazy download mode property set
|
||||
function getLazyJars() {
|
||||
var jars = new Array();
|
||||
var keys = project.getProperties().keys();
|
||||
while(keys.hasMoreElements()) {
|
||||
var pn = new String(keys.nextElement());
|
||||
if(startsWith(pn, JFXLAZY)) {
|
||||
var fname = new String(pn.substring(JFXLAZY.length+1));
|
||||
jars.push(fname);
|
||||
}
|
||||
}
|
||||
return jars.length > 0 ? jars : null;
|
||||
}
|
||||
// set download mode of dependent libraries
|
||||
function setDownloadMode(fsEager, fsLazy, jars) {
|
||||
for(var i = 0; i < jars.length; i++) {
|
||||
fsEager.setExcludes("lib" + S + jars[i]);
|
||||
fsLazy.setIncludes("lib" + S + jars[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// fx:jar
|
||||
var jar = project.createTask("fx_jar");
|
||||
jar.setProject(project);
|
||||
var destfile = new String(project.getProperty("pp_jar_destfile"));
|
||||
jar.setDestfile(destfile);
|
||||
|
||||
// fx:application
|
||||
var app = jar.createApplication();
|
||||
app.setProject(project);
|
||||
var title = new String(project.getProperty("application.title"));
|
||||
var mainclass;
|
||||
mainclass = new String(project.getProperty("main.class"));
|
||||
if(isTrue(fx_ant_api_1_2)) {
|
||||
app.setToolkit("swing");
|
||||
}
|
||||
app.setName(title);
|
||||
app.setMainClass(mainclass);
|
||||
var appversion = new String(project.getProperty("application.implementation.version"));
|
||||
if(defined(appversion)) {
|
||||
app.setVersion(appversion);
|
||||
} else {
|
||||
app.setVersion("1.0");
|
||||
}
|
||||
|
||||
// fx:resources
|
||||
var res = jar.createResources();
|
||||
res.setProject(project);
|
||||
var pdir = new String(project.getProperty("pp_jar_dir"));
|
||||
var fn = res.createFileSet();
|
||||
fn.setProject(project);
|
||||
fn.setDir(new java.io.File(pdir));
|
||||
var ia = new String(project.getProperty("deployment.jar"));
|
||||
var ib = new String(project.getProperty("pp_jar_fs2"));
|
||||
fn.setIncludes(ia);
|
||||
fn.setIncludes(ib);
|
||||
fn.setRequiredFor("startup");
|
||||
var lazyjars = getLazyJars();
|
||||
if(lazyjars != null) {
|
||||
var fn2 = res.createFileSet();
|
||||
fn2.setProject(project);
|
||||
fn2.setDir(new java.io.File(pdir));
|
||||
fn2.setRequiredFor("runtime");
|
||||
setDownloadMode(fn,fn2,lazyjars);
|
||||
}
|
||||
|
||||
// fileset to include classes
|
||||
var fs = jar.createFileSet();
|
||||
fs.setProject(project);
|
||||
var buildcls = new String(project.getProperty("pp_jar_buildclasses"));
|
||||
fs.setDir(new java.io.File(buildcls));
|
||||
|
||||
// manifest
|
||||
var man = jar.createManifest();
|
||||
var a1val = new String(project.getProperty("application.vendor"));
|
||||
var a1 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
a1.setName("Implementation-Vendor");
|
||||
a1.setValue(a1val);
|
||||
man.addConfiguredAttribute(a1);
|
||||
var a2val = new String(project.getProperty("application.title"));
|
||||
var a2 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
a2.setName("Implementation-Title");
|
||||
a2.setValue(a2val);
|
||||
man.addConfiguredAttribute(a2);
|
||||
if(defined(appversion)) {
|
||||
var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
a3.setName("Implementation-Version");
|
||||
a3.setValue(appversion);
|
||||
man.addConfiguredAttribute(a3);
|
||||
}
|
||||
var profileAvailable = new String(project.getProperty("profile.available"));
|
||||
if (defined(profileAvailable)) {
|
||||
var profileAttribute = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
profileAttribute.setName("Profile");
|
||||
profileAttribute.setValue(new String(project.getProperty("javac.profile")));
|
||||
man.addConfiguredAttribute(profileAttribute);
|
||||
}
|
||||
var splashScreenAvailable = new String(project.getProperty("splashscreen.available"));
|
||||
if (defined(splashScreenAvailable)) {
|
||||
project.setProperty("deploy.splash.image",new String(project.getProperty("application.splash")));
|
||||
}
|
||||
jar.perform();
|
||||
]]>
|
||||
</script>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Native Packaging main implementation -->
|
||||
|
||||
<target name="-build-native-impl" depends="-check-ant-jre-supports-native-packaging, -check-native-packager-external-tools, -fx-jar-impl">
|
||||
|
||||
<!--<property name="runtime.jre.home" value="${platform.home}"/>-->
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<typedef name="fx_deploy" classname="com.sun.javafx.tools.ant.DeployFXTask" classpath="${javafx.ant.classpath}"/>
|
||||
<echo message="Launching <fx:deploy> task from ${ant-javafx.jar.location}" level="info"/>
|
||||
<property name="deployment.dir" location="${dist.dir}"/>
|
||||
<property name="pp_deploy_fs2" value="lib${file.separator}*.jar"/>
|
||||
<basename property="deployment.jar" file="${dist.jar}"/>
|
||||
<basename property="deployment.base" file="${deployment.jar}" suffix=".jar"/>
|
||||
<echo message="deploy_deploy: pp_deploy_fs2 = ${pp_deploy_fs2}" level="verbose"/>
|
||||
<echo message="deploy_deploy: deployment.dir = ${deployment.dir}" level="verbose"/>
|
||||
<echo message="deploy_deploy: deployment.jar = ${deployment.jar}" level="verbose"/>
|
||||
<echo message="deploy_deploy: deployment.base = ${deployment.base}" level="verbose"/>
|
||||
<echo message="JavaScript: deploy-deploy" level="verbose"/>
|
||||
<script language="javascript">
|
||||
<![CDATA[
|
||||
function isTrue(prop) {
|
||||
return prop != null &&
|
||||
(prop.toLowerCase()=="true" || prop.toLowerCase()=="yes" || prop.toLowerCase()=="on");
|
||||
}
|
||||
function prefix(s, len) {
|
||||
if(s == null || len <= 0 || s.length == 0) {
|
||||
return new String("");
|
||||
}
|
||||
return new String(s.substr(0, len));
|
||||
}
|
||||
function replaceSuffix(s, os, ns) {
|
||||
return prefix(s, s.indexOf(os)).concat(ns);
|
||||
}
|
||||
function startsWith(s, prefix) {
|
||||
return (s != null) && (s.indexOf(prefix) == 0);
|
||||
}
|
||||
function endsWith(s, suffix) {
|
||||
var i = s.lastIndexOf(suffix);
|
||||
return (i != -1) && (i == (s.length - suffix.length));
|
||||
}
|
||||
function defined(s) {
|
||||
return (s != null) && (s != "null") && (s.length > 0);
|
||||
}
|
||||
function contains(array, prop) {
|
||||
for (var i = 0; i < array.length; i++) {
|
||||
var s1 = new String(array[i]);
|
||||
var s2 = new String(prop);
|
||||
if( s1.toLowerCase() == s2.toLowerCase() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var S = java.io.File.separator;
|
||||
var JFXLAZY = "download.mode.lazy.jar";
|
||||
var fx_ant_api_1_1 = new String(project.getProperty("have-fx-ant-api-1.1"));
|
||||
var fx_ant_api_1_2 = new String(project.getProperty("have-fx-ant-api-1.2"));
|
||||
var have_jdk_pre7u14 = new String(project.getProperty("have-jdk-pre7u14"));
|
||||
|
||||
// get jars with lazy download mode property set
|
||||
function getLazyJars() {
|
||||
var jars = new Array();
|
||||
var keys = project.getProperties().keys();
|
||||
while(keys.hasMoreElements()) {
|
||||
var pn = new String(keys.nextElement());
|
||||
if(startsWith(pn, JFXLAZY)) {
|
||||
var fname = pn.substring(JFXLAZY.length+1);
|
||||
jars.push(fname);
|
||||
}
|
||||
}
|
||||
return jars.length > 0 ? jars : null;
|
||||
}
|
||||
// set download mode of dependent libraries
|
||||
function setDownloadMode(fsEager, fsLazy, jars) {
|
||||
for(var i = 0; i < jars.length; i++) {
|
||||
fsEager.setExcludes("lib" + S + jars[i]);
|
||||
fsLazy.setIncludes("lib" + S + jars[i]);
|
||||
}
|
||||
}
|
||||
// convert path to absolute if relative
|
||||
function derelativizePath(path) {
|
||||
var f = new java.io.File(path);
|
||||
if(!f.exists()) {
|
||||
f = new java.io.File(new String(project.getBaseDir()) + S + path);
|
||||
}
|
||||
if(f.exists()) {
|
||||
try {
|
||||
return f.getCanonicalPath();
|
||||
} catch(err) {
|
||||
return path;
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
// fx:deploy
|
||||
var deploy = project.createTask("fx_deploy");
|
||||
deploy.setProject(project);
|
||||
var width = new String(project.getProperty("javafx.width"));
|
||||
var height = new String(project.getProperty("javafx.height"));
|
||||
var outdir = new String(project.getProperty("deployment.dir"));
|
||||
var outfile = new String(project.getProperty("application.title"));
|
||||
if(!defined(width)) width=new String("0");
|
||||
if(!defined(height)) height=new String("0");
|
||||
deploy.setWidth(width);
|
||||
deploy.setHeight(height);
|
||||
deploy.setOutdir(outdir);
|
||||
deploy.setOutfile(outfile);
|
||||
|
||||
// native packaging (time consuming, thus applied in explicit build only)
|
||||
var nativeEnabled = new String(project.getProperty("do.build.native.package"));
|
||||
var nativeType = new String(project.getProperty("native.bundling.type"));
|
||||
var projStateRun = new String(project.getProperty("project.state.running"));
|
||||
var projStateDbg = new String(project.getProperty("project.state.debugging"));
|
||||
var projStatePrf = new String(project.getProperty("project.state.profiling"));
|
||||
if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") {
|
||||
if(!isTrue(projStateRun) && !isTrue(projStateDbg) && !isTrue(projStatePrf)) {
|
||||
if(isTrue(fx_ant_api_1_2)) {
|
||||
deploy.setNativeBundles(nativeType);
|
||||
print("Note: To create native bundles the <fx:deploy> task may require external tools. See JavaFX 2.2+ documentation for details.");
|
||||
print("");
|
||||
print("Launching <fx:deploy> in native packager mode...");
|
||||
} else {
|
||||
print("Warning: Native packaging is not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK 7u6 or higher.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fx:application
|
||||
var app = deploy.createApplication();
|
||||
app.setProject(project);
|
||||
var title = new String(project.getProperty("application.title"));
|
||||
var mainclass;
|
||||
mainclass = new String(project.getProperty("main.class"));
|
||||
if(isTrue(fx_ant_api_1_2)) {
|
||||
app.setToolkit("swing");
|
||||
}
|
||||
app.setName(title);
|
||||
app.setMainClass(mainclass);
|
||||
var appversion = new String(project.getProperty("application.implementation.version"));
|
||||
if(defined(appversion)) {
|
||||
app.setVersion(appversion);
|
||||
} else {
|
||||
app.setVersion("1.0");
|
||||
}
|
||||
|
||||
// fx:resources
|
||||
var res = deploy.createResources();
|
||||
res.setProject(project);
|
||||
var deploydir = new String(project.getProperty("deployment.dir"));
|
||||
var fn = res.createFileSet();
|
||||
fn.setProject(project);
|
||||
fn.setDir(new java.io.File(deploydir));
|
||||
var ia = new String(project.getProperty("deployment.jar"));
|
||||
var ib = new String(project.getProperty("pp_deploy_fs2"));
|
||||
fn.setIncludes(ia);
|
||||
fn.setIncludes(ib);
|
||||
fn.setRequiredFor("startup");
|
||||
var lazyjars = getLazyJars();
|
||||
if(lazyjars != null) {
|
||||
var fn2 = res.createFileSet();
|
||||
fn2.setProject(project);
|
||||
fn2.setDir(new java.io.File(deploydir));
|
||||
fn2.setRequiredFor("runtime");
|
||||
setDownloadMode(fn,fn2,lazyjars);
|
||||
}
|
||||
|
||||
// fx:info
|
||||
var info = deploy.createInfo();
|
||||
info.setProject(project);
|
||||
var vendor = new String(project.getProperty("application.vendor"));
|
||||
var description = new String(project.getProperty("application.desc"));
|
||||
info.setTitle(title); // title known from before
|
||||
info.setVendor(vendor);
|
||||
info.setDescription(description);
|
||||
var splash = new String(project.getProperty("deploy.splash.image"));
|
||||
if(defined(splash)) {
|
||||
if(isTrue(fx_ant_api_1_1)) {
|
||||
var sicon = info.createSplash();
|
||||
sicon.setHref(splash);
|
||||
sicon.setMode("any");
|
||||
print("Adding splash image reference: " + splash);
|
||||
} else {
|
||||
print("Warning: Splash Image not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher.");
|
||||
}
|
||||
}
|
||||
if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") {
|
||||
var icon = new String(project.getProperty("deploy.icon.native"));
|
||||
if(defined(icon)) {
|
||||
if(isTrue(fx_ant_api_1_2) && !isTrue(have_jdk_pre7u14)) {
|
||||
var dicon = derelativizePath(icon);
|
||||
// create temporary icon copy renamed to application name (required by native packager)
|
||||
var baseDir = new String(project.getProperty("basedir"));
|
||||
var buildDir = new String(project.getProperty("build.dir"));
|
||||
var deployBase = new String(project.getProperty("deployment.base"));
|
||||
var copyTask = project.createTask("copy");
|
||||
var source = new java.io.File(dicon);
|
||||
var sourceName = new String(source.getName());
|
||||
var lastDot = sourceName.lastIndexOf(".");
|
||||
var sourceExt;
|
||||
if(lastDot >=0) {
|
||||
sourceExt = sourceName.substr(lastDot);
|
||||
} else {
|
||||
sourceExt = new String("");
|
||||
}
|
||||
var target = new java.io.File(baseDir.concat(S).concat(buildDir).concat(S).concat("icon").concat(S).concat(deployBase).concat(sourceExt));
|
||||
copyTask.setFile(source);
|
||||
copyTask.setTofile(target);
|
||||
copyTask.setFlatten(true);
|
||||
copyTask.setFailOnError(false);
|
||||
copyTask.perform();
|
||||
var tempicon;
|
||||
if(target.exists()) {
|
||||
try {
|
||||
tempicon = target.getCanonicalPath();
|
||||
} catch(err) {
|
||||
tempicon = dicon;
|
||||
}
|
||||
} else {
|
||||
tempicon = dicon;
|
||||
}
|
||||
var nicon = info.createIcon();
|
||||
nicon.setHref(tempicon);
|
||||
print("Source native icon reference: " + dicon);
|
||||
print("Processed native icon reference: " + tempicon);
|
||||
} else {
|
||||
print("Warning: Native Package icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK7u14.");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var icon = new String(project.getProperty("deploy.icon.webstart"));
|
||||
if(defined(icon)) {
|
||||
if(isTrue(fx_ant_api_1_1)) {
|
||||
var iicon = info.createIcon();
|
||||
iicon.setHref(icon);
|
||||
print("Adding WebStart icon reference: " + icon);
|
||||
} else {
|
||||
print("Warning: WebStart Icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
deploy.perform();
|
||||
]]>
|
||||
</script>
|
||||
</target>
|
||||
|
||||
<target name="-post-build-native-cleanup">
|
||||
<delete file="${dist.dir}/${application.title}.html" quiet="true"/>
|
||||
<delete file="${dist.dir}/${application.title}.jnlp" quiet="true"/>
|
||||
<delete file="${dist.dir}/${application.title}_browser.jnlp" quiet="true"/>
|
||||
</target>
|
||||
</project>
|
@ -1,934 +0,0 @@
|
||||
<?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="Build Native Packages" default="build-native" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1"
|
||||
xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:fx="javafx:com.sun.javafx.tools.ant">
|
||||
<description>Native Packager Ant calls based on SE support in JavaFX packager</description>
|
||||
|
||||
<!-- Check system and JDK version -->
|
||||
|
||||
<target name="-check-operating-system">
|
||||
<condition property="running.on.mac">
|
||||
<os family="mac"/>
|
||||
</condition>
|
||||
<condition property="running.on.unix">
|
||||
<os family="unix"/>
|
||||
</condition>
|
||||
<condition property="running.on.windows">
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<echo message="running.on.mac = ${running.on.mac}" level="verbose"/>
|
||||
<echo message="running.on.unix = ${running.on.unix}" level="verbose"/>
|
||||
<echo message="running.on.windows = ${running.on.windows}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Check availability of JavaFX SDK deployment support (ant-javafx.jar) -->
|
||||
|
||||
<target name="-check-endorsed-javafx-ant-classpath">
|
||||
<condition property="endorsed-javafx-ant-classpath-available">
|
||||
<and>
|
||||
<isset property="endorsed.javafx.ant.classpath"/>
|
||||
<not>
|
||||
<equals arg1="${endorsed.javafx.ant.classpath}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<echo message="endorsed-javafx-ant-classpath-available = ${endorsed-javafx-ant-classpath-available}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-property-javafx.sdk">
|
||||
<echo message="javafx.sdk = ${javafx.sdk}" level="verbose"/>
|
||||
<condition property="javafx.sdk.defined">
|
||||
<and>
|
||||
<isset property="javafx.sdk"/>
|
||||
<not><contains string="${javafx.sdk}" substring="$${platform" casesensitive="false"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="javafx.sdk.missing+default">
|
||||
<and>
|
||||
<equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/>
|
||||
<not><isset property="javafx.sdk.defined"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="javafx.sdk.missing-default">
|
||||
<and>
|
||||
<not><equals arg1="${platform.active}" arg2="Default_JavaFX_Platform" trim="true"/></not>
|
||||
<not><isset property="javafx.sdk.defined"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
<echo message="javafx.sdk.defined = ${javafx.sdk.defined}" level="verbose"/>
|
||||
<echo message="javafx.sdk.missing+default = ${javafx.sdk.missing+default}" level="verbose"/>
|
||||
<echo message="javafx.sdk.missing-default = ${javafx.sdk.missing-default}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-ant-javafx-in-fxsdk-lib" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
|
||||
<condition property="do.set.ant-javafx.in.fxsdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${javafx.sdk}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-fxsdk-lib" depends="-check-ant-javafx-in-fxsdk-lib" if="do.set.ant-javafx.in.fxsdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${javafx.sdk}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-fxsdk-tools" depends="-check-property-javafx.sdk" if="javafx.sdk.defined">
|
||||
<condition property="do.set.ant-javafx.in.fxsdk.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${javafx.sdk}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-fxsdk-tools" depends="-set-ant-javafx-in-fxsdk-lib,-check-ant-javafx-in-fxsdk-tools" if="do.set.ant-javafx.in.fxsdk.tools">
|
||||
<property name="ant-javafx.jar.location" value="${javafx.sdk}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-platform-home-lib" if="platform.home">
|
||||
<condition property="do.set.ant-javafx.in.platform.home.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${platform.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-platform-home-lib" depends="-set-ant-javafx-in-fxsdk-tools,-check-ant-javafx-in-platform-home-lib" if="do.set.ant-javafx.in.platform.home.lib">
|
||||
<property name="ant-javafx.jar.location" value="${platform.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-platform-home-tools" if="platform.home">
|
||||
<condition property="do.set.ant-javafx.in.platform.home.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${platform.home}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-platform-home-tools" depends="-set-ant-javafx-in-platform-home-lib,-check-ant-javafx-in-platform-home-tools" if="do.set.ant-javafx.in.platform.home.tools">
|
||||
<property name="ant-javafx.jar.location" value="${platform.home}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-probjdk-lib" unless="ant-javafx.jar.location">
|
||||
<condition property="do.set.ant-javafx.in.probjdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${java.home}${file.separator}..${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-probjdk-lib" depends="-set-ant-javafx-in-platform-home-tools,-check-ant-javafx-in-probjdk-lib" if="do.set.ant-javafx.in.probjdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${java.home}${file.separator}..${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-probjdk-tools" unless="ant-javafx.jar.location">
|
||||
<condition property="do.set.ant-javafx.in.probjdk.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${java.home}${file.separator}..${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-probjdk-tools" depends="-set-ant-javafx-in-probjdk-lib,-check-ant-javafx-in-probjdk-tools" if="do.set.ant-javafx.in.probjdk.tools">
|
||||
<property name="ant-javafx.jar.location" value="${java.home}${file.separator}..${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-macjdk-lib" unless="ant-javafx.jar.location">
|
||||
<condition property="do.set.ant-javafx.in.macjdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${java.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-macjdk-lib" depends="-set-ant-javafx-in-probjdk-tools,-check-ant-javafx-in-macjdk-lib" if="do.set.ant-javafx.in.macjdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${java.home}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-envjdk-lib" unless="ant-javafx.jar.location">
|
||||
<property environment="env"/>
|
||||
<condition property="do.set.ant-javafx.in.envjdk.lib">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${env.JAVA_HOME}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-envjdk-lib" depends="-set-ant-javafx-in-macjdk-lib,-check-ant-javafx-in-envjdk-lib" if="do.set.ant-javafx.in.envjdk.lib">
|
||||
<property name="ant-javafx.jar.location" value="${env.JAVA_HOME}${file.separator}lib${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-check-ant-javafx-in-envjdk-tools" unless="ant-javafx.jar.location">
|
||||
<property environment="env"/>
|
||||
<condition property="do.set.ant-javafx.in.envjdk.tools">
|
||||
<and>
|
||||
<not><isset property="ant-javafx.jar.location"/></not>
|
||||
<available file="${env.JAVA_HOME}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-ant-javafx-in-envjdk-tools" depends="-set-ant-javafx-in-envjdk-lib,-check-ant-javafx-in-envjdk-tools" if="do.set.ant-javafx.in.envjdk.tools">
|
||||
<property name="ant-javafx.jar.location" value="${env.JAVA_HOME}${file.separator}tools${file.separator}ant-javafx.jar"/>
|
||||
</target>
|
||||
<target name="-pre-check-ant-javafx-version" depends="-set-ant-javafx-in-envjdk-tools" unless="ant-javafx-version-already-checked-in-jfximpl">
|
||||
<condition property="do.check.ant-javafx.version">
|
||||
<and>
|
||||
<isset property="ant-javafx.jar.location"/>
|
||||
<not><isset property="ant-javafx-version-already-checked-in-jfximpl"/></not>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-set-endorsed-javafx-ant-classpath" depends="-check-endorsed-javafx-ant-classpath,-pre-check-ant-javafx-version" if="endorsed-javafx-ant-classpath-available">
|
||||
<property name="javafx.ant.classpath" value="${endorsed.javafx.ant.classpath}:${ant-javafx.jar.location}"/>
|
||||
</target>
|
||||
<target name="-set-javafx-ant-classpath" depends="-check-endorsed-javafx-ant-classpath,-pre-check-ant-javafx-version" unless="endorsed-javafx-ant-classpath-available">
|
||||
<property name="javafx.ant.classpath" value="${ant-javafx.jar.location}"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-ant-javafx-version" depends="-pre-check-ant-javafx-version,
|
||||
-set-endorsed-javafx-ant-classpath,-set-javafx-ant-classpath" if="do.check.ant-javafx.version">
|
||||
<echo message="ant-javafx.jar.location = ${ant-javafx.jar.location}" level="verbose"/>
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
|
||||
uri="javafx:com.sun.javafx.tools.ant"
|
||||
classpath="${javafx.ant.classpath}"/>
|
||||
<condition property="have-fx-ant-init">
|
||||
<typefound name="javafx:com.sun.javafx.tools.ant:init-ant"/>
|
||||
</condition>
|
||||
<property name="ant-javafx-version-already-checked-in-jfximpl" value="true"/>
|
||||
<echo message="have-fx-ant-init = ${have-fx-ant-init}" level="verbose"/>
|
||||
</target>
|
||||
<target name="-check-jfx-sdk-version-old" depends="-check-ant-javafx-version" unless="have-fx-ant-init">
|
||||
<property name="javafx.ant.version" value="1.0"/>
|
||||
</target>
|
||||
<target name="-check-jfx-sdk-version-new" depends="-check-ant-javafx-version" if="have-fx-ant-init">
|
||||
<fx:init-ant/>
|
||||
<condition property="have-fx-ant-api-1.1">
|
||||
<!-- new features from JavaFX 2.0.2 are available in API version 1.1 or later -->
|
||||
<matches pattern="1.[1-9]" string="${javafx.ant.version}"/>
|
||||
</condition>
|
||||
<condition property="have-fx-ant-api-1.2">
|
||||
<!-- new features from JavaFX 2.2 are available in API version 1.2 or later -->
|
||||
<matches pattern="1.[2-9]" string="${javafx.ant.version}"/>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="-check-jfx-sdk-version" depends="-check-jfx-sdk-version-old, -check-jfx-sdk-version-new" unless="jfx.sdk.version.checked">
|
||||
<echo message="Detected JavaFX Ant API version ${javafx.ant.version}" level="info"/>
|
||||
<echo message="have-fx-ant-api-1.1 = ${have-fx-ant-api-1.1}" level="verbose"/>
|
||||
<echo message="have-fx-ant-api-1.2 = ${have-fx-ant-api-1.2}" level="verbose"/>
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<property name="jfx.sdk.version.checked" value="true"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-ant-jre-version" unless="ant-jre-version-checked-in-jfximpl">
|
||||
<local name="version-output"/>
|
||||
<exec executable="${java.home}${file.separator}bin${file.separator}java" outputproperty="version-output">
|
||||
<arg value="-version"/>
|
||||
</exec>
|
||||
<echo message="version-output:${line.separator}${version-output}" level="verbose"/>
|
||||
<condition property="have-ant-jre-pre7u6">
|
||||
<or>
|
||||
<contains string="${version-output}" substring="java version "1.0"/>
|
||||
<contains string="${version-output}" substring="java version "1.1"/>
|
||||
<contains string="${version-output}" substring="java version "1.2"/>
|
||||
<contains string="${version-output}" substring="java version "1.3"/>
|
||||
<contains string="${version-output}" substring="java version "1.4"/>
|
||||
<contains string="${version-output}" substring="java version "1.5"/>
|
||||
<contains string="${version-output}" substring="java version "1.6"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0""/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_01"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_02"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_03"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_04"/>
|
||||
<contains string="${version-output}" substring="java version "1.7.0_05"/>
|
||||
</or>
|
||||
</condition>
|
||||
<property name="ant-jre-version-checked-in-jfximpl" value="true"/>
|
||||
<echo message="have-ant-jre-pre7u6 = ${have-ant-jre-pre7u6}" level="verbose"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Native Packaging main target -->
|
||||
|
||||
<target name="build-native" depends="-set-do-build-native-package, -check-ant-jre-supports-native-packaging, -check-native-packager-external-tools, -fx-jar-impl, -build-native-impl, -post-build-native-cleanup"/>
|
||||
|
||||
<target name="build-native-noscript">
|
||||
<fail message="Java Application Native Packager requires JDK JavaScript support but has not found any."/>
|
||||
</target>
|
||||
|
||||
<target name="-check-do-jar">
|
||||
<condition property="do-jar-false">
|
||||
<and>
|
||||
<isset property="do.jar"/>
|
||||
<equals arg1="${do.jar}" arg2="false"/>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="-set-do-build-native-package">
|
||||
<property name="do.build.native.package" value="true"/>
|
||||
<echo message="do.build.native.package = ${do.build.native.package}" level="verbose"/>
|
||||
</target>
|
||||
<target name="-check-ant-jre-supports-native-packaging" depends="-check-jfx-sdk-version, -check-ant-javafx-version, -check-ant-jre-version">
|
||||
<fail message="Error:${line.separator}JavaFX native packager requires NetBeans to run on JDK 1.7u6 or later !" if="have-ant-jre-pre7u6"/>
|
||||
</target>
|
||||
|
||||
<target name="-check-native-bundling-type" depends="-check-operating-system" if="do.build.native.package">
|
||||
<condition property="need.Inno.presence">
|
||||
<and>
|
||||
<isset property="running.on.windows"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="all" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="installer" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="exe" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="need.WiX.presence">
|
||||
<and>
|
||||
<isset property="running.on.windows"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="all" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="installer" casesensitive="false"/>
|
||||
<equals arg1="${native.bundling.type}" arg2="msi" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="need.dpkg.presence">
|
||||
<and>
|
||||
<isset property="running.on.unix"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="deb" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="need.rpmbuild.presence">
|
||||
<and>
|
||||
<isset property="running.on.unix"/>
|
||||
<isset property="native.bundling.type"/>
|
||||
<or>
|
||||
<equals arg1="${native.bundling.type}" arg2="rpm" casesensitive="false"/>
|
||||
</or>
|
||||
</and>
|
||||
</condition>
|
||||
<echo message="need.Inno.presence:${need.Inno.presence}" level="verbose"/>
|
||||
<echo message="need.WiX.presence:${need.WiX.presence}" level="verbose"/>
|
||||
<echo message="need.dpkg.presence:${need.dpkg.presence}" level="verbose"/>
|
||||
<echo message="need.rpmbuild.presence:${need.rpmbuild.presence}" level="verbose"/>
|
||||
</target>
|
||||
<target name="-check-Inno-presence" depends="-check-native-bundling-type" if="need.Inno.presence">
|
||||
<local name="exec-output"/>
|
||||
<local name="exec-error"/>
|
||||
<local name="exec-result"/>
|
||||
<exec executable="iscc" outputproperty="exec-output" failifexecutionfails="false" errorproperty="exec-error" resultproperty="exec-result"/>
|
||||
<echo message="exec-output:${exec-output}" level="verbose"/>
|
||||
<echo message="exec-error:${exec-error}" level="verbose"/>
|
||||
<echo message="exec-result:${exec-result}" level="verbose"/>
|
||||
<condition property="missing.Inno">
|
||||
<not><and>
|
||||
<contains string="${exec-output}" substring="Inno Setup"/>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 1"/></not>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 2"/></not>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 3"/></not>
|
||||
<not><contains string="${exec-output}" substring="Inno Setup 4"/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-WiX-presence" depends="-check-native-bundling-type" if="need.WiX.presence">
|
||||
<local name="exec-output"/>
|
||||
<local name="exec-error"/>
|
||||
<local name="exec-result"/>
|
||||
<exec executable="candle" outputproperty="exec-output" failifexecutionfails="false" errorproperty="exec-error" resultproperty="exec-result">
|
||||
<arg value="-?"/>
|
||||
</exec>
|
||||
<echo message="exec-output:${exec-output}" level="verbose"/>
|
||||
<echo message="exec-error:${exec-error}" level="verbose"/>
|
||||
<echo message="exec-result:${exec-result}" level="verbose"/>
|
||||
<condition property="missing.WiX">
|
||||
<not><and>
|
||||
<contains string="${exec-output}" substring="Windows Installer Xml Compiler version"/>
|
||||
<not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 1"/></not>
|
||||
<not><contains string="${exec-output}" substring="Windows Installer Xml Compiler version 2"/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-dpkg-presence" depends="-check-native-bundling-type" if="need.dpkg.presence">
|
||||
<local name="exec.which.dpkg.result"/>
|
||||
<local name="exec.which.dpkg.output"/>
|
||||
<exec executable="command" failifexecutionfails="false" failonerror="false" resultproperty="exec.which.dpkg.result" outputproperty="exec.which.dpkg.output">
|
||||
<arg line="-v dpkg"/>
|
||||
</exec>
|
||||
<condition property="missing.dpkg">
|
||||
<not><and>
|
||||
<isset property="exec.which.dpkg.result"/>
|
||||
<equals arg1="${exec.which.dpkg.result}" arg2="0"/>
|
||||
<isset property="exec.which.dpkg.output"/>
|
||||
<not><equals arg1="${exec.which.dpkg.output}" arg2=""/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-rpmbuild-presence" depends="-check-native-bundling-type" if="need.rpmbuild.presence">
|
||||
<local name="exec.which.rpmbuild.result"/>
|
||||
<local name="exec.which.rpmbuild.output"/>
|
||||
<exec executable="command" failifexecutionfails="false" failonerror="false" resultproperty="exec.which.rpmbuild.result" outputproperty="exec.which.rpmbuild.output">
|
||||
<arg line="-v rpmbuild"/>
|
||||
</exec>
|
||||
<condition property="missing.rpmbuild">
|
||||
<not><and>
|
||||
<isset property="exec.which.rpmbuild.result"/>
|
||||
<equals arg1="${exec.which.rpmbuild.result}" arg2="0"/>
|
||||
<isset property="exec.which.rpmbuild.output"/>
|
||||
<not><equals arg1="${exec.which.rpmbuild.output}" arg2=""/></not>
|
||||
</and></not>
|
||||
</condition>
|
||||
</target>
|
||||
<target name="-check-native-packager-external-tools" depends="-check-Inno-presence, -check-WiX-presence, -check-dpkg-presence, -check-rpmbuild-presence">
|
||||
<property name="missing.Inno.message" value="JavaFX native packager requires external Inno Setup 5+ tools installed and included on PATH to create EXE installer. See http://www.jrsoftware.org/"/>
|
||||
<property name="missing.WiX.message" value="JavaFX native packager requires external WiX 3.0+ tools installed and included on PATH to create MSI installer. See http://wix.sourceforge.net/"/>
|
||||
<property name="missing.dpkg.message" value="JavaFX native packager requires Debian Packager tools to create DEB package, but dpkg could not be found."/>
|
||||
<property name="missing.rpmbuild.message" value="JavaFX native packager requires RPMBuild to create RPM package, but rpmbuild could not be found."/>
|
||||
<condition property="missing.Inno.WiX">
|
||||
<and>
|
||||
<isset property="missing.Inno"/>
|
||||
<isset property="missing.WiX"/>
|
||||
</and>
|
||||
</condition>
|
||||
<fail message="Error:${line.separator}${missing.Inno.message}${line.separator}${missing.WiX.message}" if="missing.Inno.WiX"/>
|
||||
<fail message="Error:${line.separator}${missing.Inno.message}" if="missing.Inno"/>
|
||||
<fail message="Error:${line.separator}${missing.WiX.message}" if="missing.WiX"/>
|
||||
<fail message="Error:${line.separator}${missing.dpkg.message}" if="missing.dpkg"/>
|
||||
<fail message="Error:${line.separator}${missing.rpmbuild.message}" if="missing.rpmbuild"/>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Copy dependent libraries -->
|
||||
|
||||
<target name="-jfx-copylibs" depends="init,compile,-pre-pre-jar,-pre-jar,-jfx-copylibs-warning" unless="fallback.no.javascript">
|
||||
<jfx-copylibs-js-impl/>
|
||||
</target>
|
||||
<target name="-jfx-copylibs-warning" if="fallback.no.javascript">
|
||||
<echo message="Warning: Dependent Libraries copy (-jfx-copylibs) skipped in fallback build mode due to JDK missing JavaScript support."/>
|
||||
</target>
|
||||
<macrodef name="jfx-copylibs-js-impl">
|
||||
<sequential>
|
||||
<local name="run.classpath.without.build.classes.and.dist.dir"/>
|
||||
<pathconvert property="run.classpath.without.build.classes.and.dist.dir">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${basedir}${file.separator}${build.classes.dir}" to=""/>
|
||||
<map from="${basedir}${file.separator}${dist.jar}" to=""/>
|
||||
<scriptmapper language="javascript">
|
||||
self.addMappedName(
|
||||
(source.indexOf("jfxrt.jar") >= 0) ||
|
||||
(source.indexOf("deploy.jar") >= 0) ||
|
||||
(source.indexOf("javaws.jar") >= 0) ||
|
||||
(source.indexOf("plugin.jar") >= 0)
|
||||
? "" : source
|
||||
);
|
||||
</scriptmapper>
|
||||
</pathconvert>
|
||||
<!-- add possibly missing dependencies at distance 2 (build system logic thus provides transitive closure) -->
|
||||
<local name="run.and.lib.classpath"/>
|
||||
<echo message="JavaScript: -jfx-copylibs" level="verbose"/>
|
||||
<script language="javascript">
|
||||
<![CDATA[
|
||||
function prefix(s, len) {
|
||||
if(s == null || len <= 0 || s.length == 0) {
|
||||
return new String("");
|
||||
}
|
||||
return new String(s.substr(0, len));
|
||||
}
|
||||
function defined(s) {
|
||||
return (s != null) && (s != "null") && (s.length > 0);
|
||||
}
|
||||
var classPath = new String(project.getProperty("run.classpath.without.build.classes.and.dist.dir"));
|
||||
if(defined(classPath)) {
|
||||
var fileSeparator = new String(project.getProperty("file.separator"));
|
||||
var pathConvert = project.createTask("pathconvert");
|
||||
pathConvert.setProperty("run.and.lib.classpath");
|
||||
var classPathCopy = pathConvert.createPath();
|
||||
classPathCopy.setPath(classPath);
|
||||
var pathArray;
|
||||
if(classPath.indexOf(";") != -1) {
|
||||
pathArray = classPath.split(";");
|
||||
} else {
|
||||
pathArray = classPath.split(":");
|
||||
}
|
||||
var added = new java.lang.StringBuilder();
|
||||
for (var i = 0; i < pathArray.length; i++) {
|
||||
var index = pathArray[i].lastIndexOf(fileSeparator);
|
||||
if (index >= 0) {
|
||||
var onePath = prefix(pathArray[i], index+1).concat("lib");
|
||||
var oneDir = new java.io.File(onePath);
|
||||
if(oneDir.exists()) {
|
||||
var fs = project.createDataType( "fileset" );
|
||||
fs.setDir( oneDir );
|
||||
fs.setIncludes("*.jar");
|
||||
var ds = fs.getDirectoryScanner(project);
|
||||
var srcFiles = ds.getIncludedFiles();
|
||||
for (var j = 0; j < srcFiles.length; j++) {
|
||||
if(classPath.indexOf( srcFiles[j] ) == -1 && added.indexOf( srcFiles[j] ) == -1) {
|
||||
var path = pathConvert.createPath();
|
||||
path.setPath( onePath.concat(fileSeparator).concat(srcFiles[j]) );
|
||||
added.append( srcFiles[j] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pathConvert.perform();
|
||||
}
|
||||
]]>
|
||||
</script>
|
||||
<echo message="run.and.lib.classpath = ${run.and.lib.classpath}" level="verbose"/>
|
||||
<property name="run.and.lib.classpath" value=""/> <!-- fallback -->
|
||||
<delete dir="${dist.dir}${file.separator}lib" includeEmptyDirs="true" quiet="true"/>
|
||||
<copy todir="${dist.dir}${file.separator}lib" flatten="true" preservelastmodified="true" overwrite="true">
|
||||
<path>
|
||||
<pathelement path="${run.and.lib.classpath}"/>
|
||||
</path>
|
||||
</copy>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
|
||||
<!-- <fx:jar> replacing standard jar, because native packager up to JDK7u21 refuses to package standard jars -->
|
||||
|
||||
<target name="-fx-jar-impl" depends="-check-jfx-sdk-version, -check-ant-javafx-version, -check-ant-jre-version, clean, compile, -jfx-copylibs">
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<typedef name="fx_jar" classname="com.sun.javafx.tools.ant.FXJar" classpath="${javafx.ant.classpath}"/>
|
||||
<echo message="Launching <fx:jar> task from ${ant-javafx.jar.location}" level="info"/>
|
||||
<property name="deployment.dir" location="${dist.dir}"/>
|
||||
<basename property="deployment.jar" file="${dist.jar}"/>
|
||||
<property name="pp_jar_destfile" value="${deployment.dir}${file.separator}${deployment.jar}"/>
|
||||
<property name="pp_jar_buildclasses" value="${basedir}${file.separator}${build.classes.dir}"/>
|
||||
<property name="pp_jar_dir" value="${deployment.dir}"/>
|
||||
<property name="pp_jar_fs2" value="lib${file.separator}*.jar"/>
|
||||
<echo message="fx_jar: pp_jar_destfile = ${pp_jar_destfile}" level="verbose"/>
|
||||
<echo message="fx_jar: pp_jar_buildclasses = ${pp_jar_buildclasses}" level="verbose"/>
|
||||
<echo message="fx_jar: pp_jar_dir = ${pp_jar_dir}" level="verbose"/>
|
||||
<echo message="fx_jar: pp_jar_fs2 = ${pp_jar_fs2}" level="verbose"/>
|
||||
<echo message="JavaScript: fx-jar" level="verbose"/>
|
||||
<script language="javascript">
|
||||
<![CDATA[
|
||||
function isTrue(prop) {
|
||||
return prop != null &&
|
||||
( prop.toLowerCase() == "true" || prop.toLowerCase() == "yes" || prop.toLowerCase() == "on" );
|
||||
}
|
||||
function prefix(s, len) {
|
||||
if(s == null || len <= 0 || s.length == 0) {
|
||||
return new String("");
|
||||
}
|
||||
return new String(s.substr(0, len));
|
||||
}
|
||||
function replaceSuffix(s, os, ns) {
|
||||
return prefix(s, s.indexOf(os)).concat(ns);
|
||||
}
|
||||
function startsWith(s, prefix) {
|
||||
return (s != null) && (s.indexOf(prefix) == 0);
|
||||
}
|
||||
function endsWith(s, suffix) {
|
||||
var i = s.lastIndexOf(suffix);
|
||||
return (i != -1) && (i == (s.length - suffix.length));
|
||||
}
|
||||
function defined(s) {
|
||||
return (s != null) && (s != "null") && (s.length > 0);
|
||||
}
|
||||
function contains(array, prop) {
|
||||
for (var i = 0; i < array.length; i++) {
|
||||
var s1 = new String(array[i]);
|
||||
var s2 = new String(prop);
|
||||
if( s1.toLowerCase() == s2.toLowerCase() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var S = new String(java.io.File.separator);
|
||||
var JFXLAZY = "download.mode.lazy.jar";
|
||||
var fx_ant_api_1_1 = new String(project.getProperty("have-fx-ant-api-1.1"));
|
||||
var fx_ant_api_1_2 = new String(project.getProperty("have-fx-ant-api-1.2"));
|
||||
|
||||
// get jars with lazy download mode property set
|
||||
function getLazyJars() {
|
||||
var jars = new Array();
|
||||
var keys = project.getProperties().keys();
|
||||
while(keys.hasMoreElements()) {
|
||||
var pn = new String(keys.nextElement());
|
||||
if(startsWith(pn, JFXLAZY)) {
|
||||
var fname = new String(pn.substring(JFXLAZY.length+1));
|
||||
jars.push(fname);
|
||||
}
|
||||
}
|
||||
return jars.length > 0 ? jars : null;
|
||||
}
|
||||
// set download mode of dependent libraries
|
||||
function setDownloadMode(fsEager, fsLazy, jars) {
|
||||
for(var i = 0; i < jars.length; i++) {
|
||||
fsEager.setExcludes("lib" + S + jars[i]);
|
||||
fsLazy.setIncludes("lib" + S + jars[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// fx:jar
|
||||
var jar = project.createTask("fx_jar");
|
||||
jar.setProject(project);
|
||||
var destfile = new String(project.getProperty("pp_jar_destfile"));
|
||||
jar.setDestfile(destfile);
|
||||
|
||||
// fx:application
|
||||
var app = jar.createApplication();
|
||||
app.setProject(project);
|
||||
var title = new String(project.getProperty("application.title"));
|
||||
var mainclass;
|
||||
mainclass = new String(project.getProperty("main.class"));
|
||||
if(isTrue(fx_ant_api_1_2)) {
|
||||
app.setToolkit("swing");
|
||||
}
|
||||
app.setName(title);
|
||||
app.setMainClass(mainclass);
|
||||
var appversion = new String(project.getProperty("application.implementation.version"));
|
||||
if(defined(appversion)) {
|
||||
app.setVersion(appversion);
|
||||
} else {
|
||||
app.setVersion("1.0");
|
||||
}
|
||||
|
||||
// fx:resources
|
||||
var res = jar.createResources();
|
||||
res.setProject(project);
|
||||
var pdir = new String(project.getProperty("pp_jar_dir"));
|
||||
var fn = res.createFileSet();
|
||||
fn.setProject(project);
|
||||
fn.setDir(new java.io.File(pdir));
|
||||
var ia = new String(project.getProperty("deployment.jar"));
|
||||
var ib = new String(project.getProperty("pp_jar_fs2"));
|
||||
fn.setIncludes(ia);
|
||||
fn.setIncludes(ib);
|
||||
fn.setRequiredFor("startup");
|
||||
var lazyjars = getLazyJars();
|
||||
if(lazyjars != null) {
|
||||
var fn2 = res.createFileSet();
|
||||
fn2.setProject(project);
|
||||
fn2.setDir(new java.io.File(pdir));
|
||||
fn2.setRequiredFor("runtime");
|
||||
setDownloadMode(fn,fn2,lazyjars);
|
||||
}
|
||||
|
||||
// fileset to include classes
|
||||
var fs = jar.createFileSet();
|
||||
fs.setProject(project);
|
||||
var buildcls = new String(project.getProperty("pp_jar_buildclasses"));
|
||||
fs.setDir(new java.io.File(buildcls));
|
||||
|
||||
// manifest
|
||||
var man = jar.createManifest();
|
||||
var a1val = new String(project.getProperty("application.vendor"));
|
||||
var a1 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
a1.setName("Implementation-Vendor");
|
||||
a1.setValue(a1val);
|
||||
man.addConfiguredAttribute(a1);
|
||||
var a2val = new String(project.getProperty("application.title"));
|
||||
var a2 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
a2.setName("Implementation-Title");
|
||||
a2.setValue(a2val);
|
||||
man.addConfiguredAttribute(a2);
|
||||
if(defined(appversion)) {
|
||||
var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
a3.setName("Implementation-Version");
|
||||
a3.setValue(appversion);
|
||||
man.addConfiguredAttribute(a3);
|
||||
}
|
||||
var profileAvailable = new String(project.getProperty("profile.available"));
|
||||
if (defined(profileAvailable)) {
|
||||
var profileAttribute = new org.apache.tools.ant.taskdefs.Manifest.Attribute();
|
||||
profileAttribute.setName("Profile");
|
||||
profileAttribute.setValue(new String(project.getProperty("javac.profile")));
|
||||
man.addConfiguredAttribute(profileAttribute);
|
||||
}
|
||||
var splashScreenAvailable = new String(project.getProperty("splashscreen.available"));
|
||||
if (defined(splashScreenAvailable)) {
|
||||
project.setProperty("deploy.splash.image",new String(project.getProperty("application.splash")));
|
||||
}
|
||||
jar.perform();
|
||||
]]>
|
||||
</script>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Native Packaging main implementation -->
|
||||
|
||||
<target name="-build-native-impl" depends="-check-ant-jre-supports-native-packaging, -check-native-packager-external-tools, -fx-jar-impl">
|
||||
|
||||
<!--<property name="runtime.jre.home" value="${platform.home}"/>-->
|
||||
<echo message="javafx.ant.classpath = ${javafx.ant.classpath}" level="verbose"/>
|
||||
<typedef name="fx_deploy" classname="com.sun.javafx.tools.ant.DeployFXTask" classpath="${javafx.ant.classpath}"/>
|
||||
<echo message="Launching <fx:deploy> task from ${ant-javafx.jar.location}" level="info"/>
|
||||
<property name="deployment.dir" location="${dist.dir}"/>
|
||||
<property name="pp_deploy_fs2" value="lib${file.separator}*.jar"/>
|
||||
<basename property="deployment.jar" file="${dist.jar}"/>
|
||||
<basename property="deployment.base" file="${deployment.jar}" suffix=".jar"/>
|
||||
<echo message="deploy_deploy: pp_deploy_fs2 = ${pp_deploy_fs2}" level="verbose"/>
|
||||
<echo message="deploy_deploy: deployment.dir = ${deployment.dir}" level="verbose"/>
|
||||
<echo message="deploy_deploy: deployment.jar = ${deployment.jar}" level="verbose"/>
|
||||
<echo message="deploy_deploy: deployment.base = ${deployment.base}" level="verbose"/>
|
||||
<echo message="JavaScript: deploy-deploy" level="verbose"/>
|
||||
<script language="javascript">
|
||||
<![CDATA[
|
||||
function isTrue(prop) {
|
||||
return prop != null &&
|
||||
(prop.toLowerCase()=="true" || prop.toLowerCase()=="yes" || prop.toLowerCase()=="on");
|
||||
}
|
||||
function prefix(s, len) {
|
||||
if(s == null || len <= 0 || s.length == 0) {
|
||||
return new String("");
|
||||
}
|
||||
return new String(s.substr(0, len));
|
||||
}
|
||||
function replaceSuffix(s, os, ns) {
|
||||
return prefix(s, s.indexOf(os)).concat(ns);
|
||||
}
|
||||
function startsWith(s, prefix) {
|
||||
return (s != null) && (s.indexOf(prefix) == 0);
|
||||
}
|
||||
function endsWith(s, suffix) {
|
||||
var i = s.lastIndexOf(suffix);
|
||||
return (i != -1) && (i == (s.length - suffix.length));
|
||||
}
|
||||
function defined(s) {
|
||||
return (s != null) && (s != "null") && (s.length > 0);
|
||||
}
|
||||
function contains(array, prop) {
|
||||
for (var i = 0; i < array.length; i++) {
|
||||
var s1 = new String(array[i]);
|
||||
var s2 = new String(prop);
|
||||
if( s1.toLowerCase() == s2.toLowerCase() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var S = java.io.File.separator;
|
||||
var JFXLAZY = "download.mode.lazy.jar";
|
||||
var fx_ant_api_1_1 = new String(project.getProperty("have-fx-ant-api-1.1"));
|
||||
var fx_ant_api_1_2 = new String(project.getProperty("have-fx-ant-api-1.2"));
|
||||
var have_jdk_pre7u14 = new String(project.getProperty("have-jdk-pre7u14"));
|
||||
|
||||
// get jars with lazy download mode property set
|
||||
function getLazyJars() {
|
||||
var jars = new Array();
|
||||
var keys = project.getProperties().keys();
|
||||
while(keys.hasMoreElements()) {
|
||||
var pn = new String(keys.nextElement());
|
||||
if(startsWith(pn, JFXLAZY)) {
|
||||
var fname = pn.substring(JFXLAZY.length+1);
|
||||
jars.push(fname);
|
||||
}
|
||||
}
|
||||
return jars.length > 0 ? jars : null;
|
||||
}
|
||||
// set download mode of dependent libraries
|
||||
function setDownloadMode(fsEager, fsLazy, jars) {
|
||||
for(var i = 0; i < jars.length; i++) {
|
||||
fsEager.setExcludes("lib" + S + jars[i]);
|
||||
fsLazy.setIncludes("lib" + S + jars[i]);
|
||||
}
|
||||
}
|
||||
// convert path to absolute if relative
|
||||
function derelativizePath(path) {
|
||||
var f = new java.io.File(path);
|
||||
if(!f.exists()) {
|
||||
f = new java.io.File(new String(project.getBaseDir()) + S + path);
|
||||
}
|
||||
if(f.exists()) {
|
||||
try {
|
||||
return f.getCanonicalPath();
|
||||
} catch(err) {
|
||||
return path;
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
// fx:deploy
|
||||
var deploy = project.createTask("fx_deploy");
|
||||
deploy.setProject(project);
|
||||
var width = new String(project.getProperty("javafx.width"));
|
||||
var height = new String(project.getProperty("javafx.height"));
|
||||
var outdir = new String(project.getProperty("deployment.dir"));
|
||||
var outfile = new String(project.getProperty("application.title"));
|
||||
if(!defined(width)) width=new String("0");
|
||||
if(!defined(height)) height=new String("0");
|
||||
deploy.setWidth(width);
|
||||
deploy.setHeight(height);
|
||||
deploy.setOutdir(outdir);
|
||||
deploy.setOutfile(outfile);
|
||||
|
||||
// native packaging (time consuming, thus applied in explicit build only)
|
||||
var nativeEnabled = new String(project.getProperty("do.build.native.package"));
|
||||
var nativeType = new String(project.getProperty("native.bundling.type"));
|
||||
var projStateRun = new String(project.getProperty("project.state.running"));
|
||||
var projStateDbg = new String(project.getProperty("project.state.debugging"));
|
||||
var projStatePrf = new String(project.getProperty("project.state.profiling"));
|
||||
if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") {
|
||||
if(!isTrue(projStateRun) && !isTrue(projStateDbg) && !isTrue(projStatePrf)) {
|
||||
if(isTrue(fx_ant_api_1_2)) {
|
||||
deploy.setNativeBundles(nativeType);
|
||||
print("Note: To create native bundles the <fx:deploy> task may require external tools. See JavaFX 2.2+ documentation for details.");
|
||||
print("");
|
||||
print("Launching <fx:deploy> in native packager mode...");
|
||||
} else {
|
||||
print("Warning: Native packaging is not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK 7u6 or higher.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fx:application
|
||||
var app = deploy.createApplication();
|
||||
app.setProject(project);
|
||||
var title = new String(project.getProperty("application.title"));
|
||||
var mainclass;
|
||||
mainclass = new String(project.getProperty("main.class"));
|
||||
if(isTrue(fx_ant_api_1_2)) {
|
||||
app.setToolkit("swing");
|
||||
}
|
||||
app.setName(title);
|
||||
app.setMainClass(mainclass);
|
||||
var appversion = new String(project.getProperty("application.implementation.version"));
|
||||
if(defined(appversion)) {
|
||||
app.setVersion(appversion);
|
||||
} else {
|
||||
app.setVersion("1.0");
|
||||
}
|
||||
|
||||
// fx:resources
|
||||
var res = deploy.createResources();
|
||||
res.setProject(project);
|
||||
var deploydir = new String(project.getProperty("deployment.dir"));
|
||||
var fn = res.createFileSet();
|
||||
fn.setProject(project);
|
||||
fn.setDir(new java.io.File(deploydir));
|
||||
var ia = new String(project.getProperty("deployment.jar"));
|
||||
var ib = new String(project.getProperty("pp_deploy_fs2"));
|
||||
fn.setIncludes(ia);
|
||||
fn.setIncludes(ib);
|
||||
fn.setRequiredFor("startup");
|
||||
var lazyjars = getLazyJars();
|
||||
if(lazyjars != null) {
|
||||
var fn2 = res.createFileSet();
|
||||
fn2.setProject(project);
|
||||
fn2.setDir(new java.io.File(deploydir));
|
||||
fn2.setRequiredFor("runtime");
|
||||
setDownloadMode(fn,fn2,lazyjars);
|
||||
}
|
||||
|
||||
// fx:info
|
||||
var info = deploy.createInfo();
|
||||
info.setProject(project);
|
||||
var vendor = new String(project.getProperty("application.vendor"));
|
||||
var description = new String(project.getProperty("application.desc"));
|
||||
info.setTitle(title); // title known from before
|
||||
info.setVendor(vendor);
|
||||
info.setDescription(description);
|
||||
var splash = new String(project.getProperty("deploy.splash.image"));
|
||||
if(defined(splash)) {
|
||||
if(isTrue(fx_ant_api_1_1)) {
|
||||
var sicon = info.createSplash();
|
||||
sicon.setHref(splash);
|
||||
sicon.setMode("any");
|
||||
print("Adding splash image reference: " + splash);
|
||||
} else {
|
||||
print("Warning: Splash Image not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher.");
|
||||
}
|
||||
}
|
||||
if(isTrue(nativeEnabled) && defined(nativeType) && nativeType != "none") {
|
||||
var icon = new String(project.getProperty("deploy.icon.native"));
|
||||
if(defined(icon)) {
|
||||
if(isTrue(fx_ant_api_1_2) && !isTrue(have_jdk_pre7u14)) {
|
||||
var dicon = derelativizePath(icon);
|
||||
// create temporary icon copy renamed to application name (required by native packager)
|
||||
var baseDir = new String(project.getProperty("basedir"));
|
||||
var buildDir = new String(project.getProperty("build.dir"));
|
||||
var deployBase = new String(project.getProperty("deployment.base"));
|
||||
var copyTask = project.createTask("copy");
|
||||
var source = new java.io.File(dicon);
|
||||
var sourceName = new String(source.getName());
|
||||
var lastDot = sourceName.lastIndexOf(".");
|
||||
var sourceExt;
|
||||
if(lastDot >=0) {
|
||||
sourceExt = sourceName.substr(lastDot);
|
||||
} else {
|
||||
sourceExt = new String("");
|
||||
}
|
||||
var target = new java.io.File(baseDir.concat(S).concat(buildDir).concat(S).concat("icon").concat(S).concat(deployBase).concat(sourceExt));
|
||||
copyTask.setFile(source);
|
||||
copyTask.setTofile(target);
|
||||
copyTask.setFlatten(true);
|
||||
copyTask.setFailOnError(false);
|
||||
copyTask.perform();
|
||||
var tempicon;
|
||||
if(target.exists()) {
|
||||
try {
|
||||
tempicon = target.getCanonicalPath();
|
||||
} catch(err) {
|
||||
tempicon = dicon;
|
||||
}
|
||||
} else {
|
||||
tempicon = dicon;
|
||||
}
|
||||
var nicon = info.createIcon();
|
||||
nicon.setHref(tempicon);
|
||||
print("Source native icon reference: " + dicon);
|
||||
print("Processed native icon reference: " + tempicon);
|
||||
} else {
|
||||
print("Warning: Native Package icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade to JDK7u14.");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var icon = new String(project.getProperty("deploy.icon.webstart"));
|
||||
if(defined(icon)) {
|
||||
if(isTrue(fx_ant_api_1_1)) {
|
||||
var iicon = info.createIcon();
|
||||
iicon.setHref(icon);
|
||||
print("Adding WebStart icon reference: " + icon);
|
||||
} else {
|
||||
print("Warning: WebStart Icon not supported by this version of JavaFX SDK deployment Ant task. Please upgrade JavaFX to 2.0.2 or higher.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
deploy.perform();
|
||||
]]>
|
||||
</script>
|
||||
</target>
|
||||
|
||||
<target name="-post-build-native-cleanup">
|
||||
<delete file="${dist.dir}/${application.title}.html" quiet="true"/>
|
||||
<delete file="${dist.dir}/${application.title}.jnlp" quiet="true"/>
|
||||
<delete file="${dist.dir}/${application.title}_browser.jnlp" quiet="true"/>
|
||||
</target>
|
||||
</project>
|
@ -1,37 +1,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.
|
||||
#
|
||||
build.xml.data.CRC32=df50d06e
|
||||
build.xml.script.CRC32=43ba75c8
|
||||
build.xml.stylesheet.CRC32=8064a381@1.75.1.48
|
||||
build.xml.data.CRC32=0dfe898c
|
||||
build.xml.script.CRC32=cfce77fe
|
||||
build.xml.stylesheet.CRC32=8064a381@1.75.2.48
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=8e5af14d
|
||||
nbproject/build-impl.xml.script.CRC32=dbe4f4c1
|
||||
nbproject/build-impl.xml.data.CRC32=0dfe898c
|
||||
nbproject/build-impl.xml.script.CRC32=eaffabc7
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
|
||||
|
@ -1,39 +1,9 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
annotation.processing.enabled=true
|
||||
annotation.processing.enabled.in.editor=false
|
||||
annotation.processing.processors.list=
|
||||
annotation.processing.run.all.processors=true
|
||||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
||||
application.desc=SyMAT: Symbolic Math for People
|
||||
application.homepage=https://symatapp.com
|
||||
application.homepage=https://symatapp.com/
|
||||
application.splash=C:\\Users\\Skylar\\Documents\\Apocalypse Labs\\apps\\SyMAT\\SyMAT\\src\\net\\apocalypselabs\\symat\\images\\symat-hex-logo.png
|
||||
application.title=SyMAT
|
||||
application.vendor=Apocalypse Laboratories
|
||||
@ -48,7 +18,6 @@ build.generated.sources.dir=${build.dir}/generated-sources
|
||||
build.sysclasspath=ignore
|
||||
build.test.classes.dir=${build.dir}/test/classes
|
||||
build.test.results.dir=${build.dir}/test/results
|
||||
copylibs.excludes=${javafx.classpath.extension}
|
||||
# Uncomment to specify the preferred debugger connection transport:
|
||||
#debug.transport=dt_socket
|
||||
debug.classpath=\
|
||||
@ -64,44 +33,50 @@ dist.javadoc.dir=${dist.dir}/javadoc
|
||||
endorsed.classpath=
|
||||
excludes=
|
||||
file.reference.autocomplete-2.5.4.jar=lib/autocomplete-2.5.4.jar
|
||||
file.reference.beautyeye_lnf.jar=lib/beautyeye_lnf.jar
|
||||
file.reference.flamingo-6.3-javadoc.jar=lib/flamingo-6.3-javadoc.jar
|
||||
file.reference.flamingo-6.3.jar=lib\\flamingo-6.3.jar
|
||||
file.reference.flamingo-6.3.jar=lib/flamingo-6.3.jar
|
||||
file.reference.htmlcleaner-2.10.jar=lib/htmlcleaner-2.10.jar
|
||||
file.reference.iText-4.2.0-com.itextpdf.jar=lib/iText-4.2.0-com.itextpdf.jar
|
||||
file.reference.JavaPrettify-1.2.1.jar=lib/JavaPrettify-1.2.1.jar
|
||||
file.reference.JavaPrettify-1.2.1.jar=lib\\JavaPrettify-1.2.1.jar
|
||||
file.reference.jmathplot.jar=lib/jmathplot.jar
|
||||
file.reference.js-engine.jar=lib/js-engine.jar
|
||||
file.reference.js.jar=lib/js.jar
|
||||
file.reference.json-simple-1.1.1.jar=lib\\json-simple-1.1.1.jar
|
||||
file.reference.json-simple-1.1.1.jar=lib/json-simple-1.1.1.jar
|
||||
file.reference.jython-standalone-2.7-b3.jar=lib/jython-standalone-2.7-b3.jar
|
||||
file.reference.log4j-1.2.11.jar=lib/log4j-1.2.11.jar
|
||||
file.reference.org-netbeans-api-visual.jar=lib/org-netbeans-api-visual.jar
|
||||
file.reference.org-openide-util.jar=lib/org-openide-util.jar
|
||||
file.reference.rsyntaxtextarea-2.5.6.jar=lib/rsyntaxtextarea-2.5.6.jar
|
||||
file.reference.seaglasslookandfeel-0.2.jar=lib/seaglasslookandfeel-0.2.jar
|
||||
file.reference.SyMAT-src=src
|
||||
file.reference.symja-2014-11-01.jar=lib/symja-2014-11-01.jar
|
||||
file.reference.trident-6.3.jar=lib\\trident-6.3.jar
|
||||
file.reference.trident-6.3.jar=lib/trident-6.3.jar
|
||||
includes=**
|
||||
jar.archive.disabled=${jnlp.enabled}
|
||||
jar.compress=false
|
||||
jar.index=${jnlp.enabled}
|
||||
javac.classpath=\
|
||||
${file.reference.log4j-1.2.11.jar}:\
|
||||
${file.reference.symja-2014-11-01.jar}:\
|
||||
${file.reference.JavaPrettify-1.2.1.jar}:\
|
||||
${file.reference.iText-4.2.0-com.itextpdf.jar}:\
|
||||
${file.reference.autocomplete-2.5.4.jar}:\
|
||||
${file.reference.beautyeye_lnf.jar}:\
|
||||
${file.reference.flamingo-6.3-javadoc.jar}:\
|
||||
${file.reference.flamingo-6.3.jar}:\
|
||||
${file.reference.htmlcleaner-2.10.jar}:\
|
||||
${file.reference.iText-4.2.0-com.itextpdf.jar}:\
|
||||
${file.reference.jmathplot.jar}:\
|
||||
${file.reference.js-engine.jar}:\
|
||||
${file.reference.js.jar}:\
|
||||
${file.reference.jython-standalone-2.7-b3.jar}:\
|
||||
${file.reference.rsyntaxtextarea-2.5.6.jar}:\
|
||||
${file.reference.autocomplete-2.5.4.jar}:\
|
||||
${file.reference.jmathplot.jar}:\
|
||||
${javafx.classpath.extension}:\
|
||||
${file.reference.json-simple-1.1.1.jar}:\
|
||||
${file.reference.flamingo-6.3.jar}:\
|
||||
${file.reference.jython-standalone-2.7-b3.jar}:\
|
||||
${file.reference.log4j-1.2.11.jar}:\
|
||||
${file.reference.org-netbeans-api-visual.jar}:\
|
||||
${file.reference.org-openide-util.jar}:\
|
||||
${file.reference.rsyntaxtextarea-2.5.6.jar}:\
|
||||
${file.reference.seaglasslookandfeel-0.2.jar}:\
|
||||
${file.reference.symja-2014-11-01.jar}:\
|
||||
${file.reference.trident-6.3.jar}:\
|
||||
${file.reference.flamingo-6.3-javadoc.jar}
|
||||
${file.reference.JavaPrettify-1.2.1.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=true
|
||||
javac.deprecation=false
|
||||
javac.processorpath=\
|
||||
${javac.classpath}
|
||||
javac.source=1.8
|
||||
@ -117,35 +92,15 @@ javadoc.encoding=${source.encoding}
|
||||
javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=true
|
||||
javadoc.reference.flamingo-6.3.jar=lib/flamingo-6.3-javadoc.jar
|
||||
javadoc.private=false
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
javadoc.windowtitle=
|
||||
javafx.classpath.extension=\
|
||||
${platforms.JDK_1.8.home}/jre/lib/javaws.jar:\
|
||||
${platforms.JDK_1.8.home}/jre/lib/deploy.jar:\
|
||||
${platforms.JDK_1.8.home}/jre/lib/plugin.jar
|
||||
jnlp.codebase.type=no.codebase
|
||||
jnlp.descriptor=application
|
||||
jnlp.enabled=false
|
||||
jnlp.mixed.code=default
|
||||
jnlp.offline-allowed=false
|
||||
jnlp.signed=false
|
||||
jnlp.signing=
|
||||
jnlp.signing.alias=
|
||||
jnlp.signing.keystore=
|
||||
keep.javafx.runtime.on.classpath=true
|
||||
main.class=net.apocalypselabs.symat.Main
|
||||
# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
|
||||
manifest.custom.codebase=
|
||||
# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
|
||||
manifest.custom.permissions=
|
||||
manifest.file=manifest.mf
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
mkdist.disabled=false
|
||||
native.bundling.enabled=true
|
||||
platform.active=JDK_1.8
|
||||
project.license=aplabs-oss_1
|
||||
run.classpath=\
|
||||
@ -159,5 +114,4 @@ run.test.classpath=\
|
||||
${javac.test.classpath}:\
|
||||
${build.test.classes.dir}
|
||||
source.encoding=UTF-8
|
||||
src.dir=src
|
||||
test.src.dir=test
|
||||
src.dir=${file.reference.SyMAT-src}
|
||||
|
@ -1,54 +1,17 @@
|
||||
<?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 xmlns="http://www.netbeans.org/ns/project/1">
|
||||
<type>org.netbeans.modules.java.j2seproject</type>
|
||||
<configuration>
|
||||
<buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1">
|
||||
<extension file="build-native.xml" id="j2sedeploy"/>
|
||||
</buildExtensions>
|
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3">
|
||||
<name>SyMAT</name>
|
||||
<explicit-platform explicit-source-supported="true"/>
|
||||
<source-roots>
|
||||
<root id="src.dir"/>
|
||||
</source-roots>
|
||||
<test-roots>
|
||||
<root id="test.src.dir"/>
|
||||
</test-roots>
|
||||
<test-roots/>
|
||||
</data>
|
||||
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
|
||||
<definitions>.\lib\nblibraries.properties</definitions>
|
||||
</libraries>
|
||||
<spellchecker-wordlist xmlns="http://www.netbeans.org/ns/spellchecker-wordlist/1">
|
||||
<word>Plugin</word>
|
||||
</spellchecker-wordlist>
|
||||
</configuration>
|
||||
</project>
|
||||
|
@ -283,9 +283,14 @@ public class Main extends JRibbonFrame {
|
||||
});
|
||||
|
||||
for (File pl : files) {
|
||||
pluginband.addCommandButton(
|
||||
(new LoadPlugin(pl)).getRibbonBtn(),
|
||||
RibbonElementPriority.MEDIUM);
|
||||
try {
|
||||
LoadPlugin lp = new LoadPlugin(pl);
|
||||
pluginband.addCommandButton(
|
||||
lp.getRibbonBtn(),
|
||||
RibbonElementPriority.MEDIUM);
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user