9 changed files with 60 additions and 2119 deletions
-
5.gitignore
-
68build.xml
-
32nbproject/build-impl.xml
-
953nbproject/build-native.xml
-
934nbproject/build-native.xml~
-
39nbproject/genfiles.properties
-
98nbproject/project.properties
-
39nbproject/project.xml
-
11src/net/apocalypselabs/symat/Main.java
@ -1,5 +1,6 @@ |
|||
bin/ |
|||
dist/ |
|||
nbproject/ |
|||
*.exe |
|||
/src/padkey |
|||
/src/padkey |
|||
/nbproject/private/ |
|||
/build/ |
@ -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"> |
|||