You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
834 lines
32 KiB
834 lines
32 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
|
|
Copyright 1997-2010 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]"
|
|
|
|
Contributor(s):
|
|
|
|
The Original Software is NetBeans. The Initial Developer of the Original Software
|
|
is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
|
|
Rights Reserved.
|
|
|
|
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.
|
|
-->
|
|
|
|
<!--
|
|
This is a target library which is intended to be used by other build scripts.
|
|
|
|
It contains the standard, fucntionality, common across all scripts which
|
|
allows to perform some basic initialization, check out sources from a cvs
|
|
repository and, finally, clean or build a netbeans project and jni libraries.
|
|
|
|
None ot the targets defined in this script are intended to be called
|
|
directly, instead it is expected that targets in build dcripts which import
|
|
this one will declare dependecies on this script's targets.
|
|
|
|
@author Kirill Sorokin
|
|
-->
|
|
<project name="common" default="usage" basedir=".">
|
|
<!-- ============================================================================
|
|
Aggregates
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Cleans the project.
|
|
|
|
This is an aggregation target, which does not contain any functionality,
|
|
but defines a dependency on the 'clean' target.
|
|
For more details, please consult the documentation for this target.
|
|
-->
|
|
<target name="clean-all" depends="clean"/>
|
|
|
|
<!--
|
|
Cleans and builds the project.
|
|
|
|
This is an aggregation target, which does not contain any functionality,
|
|
but defines dependencies on the 'clean-all', 'checkout' and 'build'
|
|
targets. For more details, please consult the documentation for these
|
|
targets.
|
|
-->
|
|
<target name="build-all" depends="clean-all,checkout,build"/>
|
|
|
|
<!--
|
|
Cleans, builds and releases the project.
|
|
|
|
This is an aggregation target, which does not contain any functionality,
|
|
but defines dependencies on the 'clean', 'checkout', 'build' and
|
|
'release' targets. For more details, please consult the documentation
|
|
for these targets.
|
|
-->
|
|
<target name="release-all" depends="build-all,release"/>
|
|
|
|
<!-- ============================================================================
|
|
Initialization
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Initializes the projects's build script.
|
|
|
|
This is an aggregation target, it does not contain any functionality, but
|
|
defines dependencies on '-pre-init', '-init' and '-post-init'
|
|
targets. The '-pre-init' and '-post-init' targets are empty hooks,
|
|
which allow derivative scripts to inject custom logic which will be
|
|
executed prior to the initialization process or after it. The '-init'
|
|
target contains the code which actually initializes the script and should
|
|
be overriden in the derivative scripts.
|
|
-->
|
|
<target name="init" depends="-pre-init,-init,-post-init"/>
|
|
|
|
<!--
|
|
Performs the default initialization.
|
|
|
|
This target defines a set of custom ant tasks which are used throughout
|
|
the script and may be useful for the derivative scripts.
|
|
|
|
It also sets some properties which control the flow of the build process,
|
|
such as whether to check-out sources from trunk or branch, or to copy
|
|
them from a given location; whether to build the native components or
|
|
not, whether to build the netbeans project or not.
|
|
|
|
Finally this target initializes the local working directory and the
|
|
distributives directory and sets a special property which will prevent it
|
|
from repeated execution.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".init" depends=".build-custom-tasks" unless="skip.initialization">
|
|
<!-- define custom ant tasks -->
|
|
<taskdef
|
|
name="for-each"
|
|
classname="org.netbeans.installer.infra.build.ant.ForEach"
|
|
classpath="${custom.tasks.cls}"/>
|
|
<taskdef
|
|
name="set"
|
|
classname="org.netbeans.installer.infra.build.ant.SetProperty"
|
|
classpath="${custom.tasks.cls}"/>
|
|
<taskdef
|
|
name="if"
|
|
classname="org.netbeans.installer.infra.build.ant.If"
|
|
classpath="${custom.tasks.cls}"/>
|
|
|
|
<!-- decide whether to checkout sources from trunk -->
|
|
<condition property="do.checkout">
|
|
<and>
|
|
<equals arg1="${checkout.sources}" arg2="true"/>
|
|
</and>
|
|
</condition>
|
|
|
|
<!-- decide whether to copy sources from a given location -->
|
|
<condition property="do.checkout.copy">
|
|
<not>
|
|
<equals arg1="${checkout.sources}" arg2="true"/>
|
|
</not>
|
|
</condition>
|
|
|
|
<!-- decide whether to build native libraries/launchers or not -->
|
|
<condition property="do.build.native">
|
|
<equals arg1="${build.native}" arg2="true"/>
|
|
</condition>
|
|
|
|
<!-- decide whether there is need to build a netbeans project -->
|
|
<condition property="do.build.nbproject">
|
|
<equals arg1="${build.nbproject}" arg2="true"/>
|
|
</condition>
|
|
|
|
<!-- deduce the path to the ant executable -->
|
|
<condition property="ant.executable" value="${ant.home}/bin/ant.bat">
|
|
<os family="windows"/>
|
|
</condition>
|
|
<condition property="ant.executable" value="${ant.home}/bin/ant">
|
|
<not>
|
|
<os family="windows"/>
|
|
</not>
|
|
</condition>
|
|
|
|
<!-- initialize the local working directory -->
|
|
<mkdir dir="${work.dir}"/>
|
|
|
|
<!-- initialize the local distributive directory -->
|
|
<mkdir dir="${dist.dir}"/>
|
|
|
|
<!-- set the marker property which will prevent the script running the
|
|
initialization procedure again, if history is lost, e.g. as a
|
|
result of an antcall -->
|
|
<property name="skip.initialization" value="true"/>
|
|
</target>
|
|
|
|
<!--
|
|
Builds custom ant tasks.
|
|
|
|
This target deletes the directory which is the target for the custom ant
|
|
tasks compilation, recreates it and runs javac on the custom tasks'
|
|
sources.
|
|
|
|
It also sets a special property which will prevent it from repeated
|
|
execution.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".build-custom-tasks" unless="dont.build.custom.tasks">
|
|
<!-- quick clean-up and initialization -->
|
|
<delete dir="${custom.tasks.cls}"/>
|
|
<mkdir dir="${custom.tasks.cls}"/>
|
|
|
|
<!-- compile -->
|
|
<javac
|
|
srcdir="${custom.tasks.src}"
|
|
destdir="${custom.tasks.cls}"
|
|
debug="true"/>
|
|
|
|
<property name="dont.build.custom.tasks" value="true"/>
|
|
</target>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed prior to the script's initialization.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-pre-init"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It must be overriden in derivative scripts, in order to implement custom
|
|
functionality required for the build script initialization.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-init" depends=".init"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed after the script's initialization.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-post-init"/>
|
|
|
|
<!-- ============================================================================
|
|
Clean-up
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Cleans the current working directory and the distributives directory.
|
|
|
|
This is an aggregation target, it does not contain any functionality, but
|
|
defines dependencies on '-pre-clean', '-clean' and '-post-clean'
|
|
targets. The '-pre-clean' and '-post-clean' targets are empty hooks,
|
|
which allow derivative scripts to inject custom logic which will be
|
|
executed prior to the clean process or after it. The '-clean' target
|
|
contains the code which actually cleans the project and should be
|
|
overriden in the derivative scripts.
|
|
-->
|
|
<target name="clean" depends="init,-pre-clean,-clean,-post-clean"/>
|
|
|
|
<!--
|
|
Performs the standard clean-up procedures.
|
|
|
|
It cleans the native components (iterates over the list of platforms for
|
|
which the native components should be built and deletes the distributive
|
|
files of these components), tries to run cleanup on the netbeans project
|
|
and finally deletes the local working directory.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".clean">
|
|
<!-- for each of the defined platforms set the appropriate property
|
|
and execute the clean-up procedure -->
|
|
<for-each list="${native.platforms}" property="platform">
|
|
<antcall target=".clean-native"/>
|
|
</for-each>
|
|
|
|
<!-- attempt to run the clean-up procedure on the netbeans project -->
|
|
<antcall target=".clean-nbproject"/>
|
|
|
|
<!-- delete the local working directory -->
|
|
<delete dir="${work.dir}" includeemptydirs="true"/>
|
|
</target>
|
|
|
|
<!--
|
|
Cleans the native components of the project.
|
|
|
|
It is meant to be antcall'ed from a loop which would iterate over the
|
|
list of supported platforms. This target expects the property
|
|
'platform' to point to the current platform for which clean-up should be
|
|
performed.
|
|
|
|
By default it falls back to '.clean-jni' target, but it is meant to be
|
|
overriden by derivative build scripts, if there is need to do more than
|
|
that.
|
|
|
|
This target is only executed if the the ${build.native} property was set
|
|
to 'true'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".clean-native" if="do.build.native">
|
|
<antcall target=".clean-jni"/>
|
|
</target>
|
|
|
|
<!--
|
|
Cleans up the native jni libraries for the project.
|
|
|
|
It removes the distributive file for the jni library for the current
|
|
platform.
|
|
|
|
This target is only executed if the the ${build.native} property was set
|
|
to 'true'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".clean-jni" if="do.build.native">
|
|
<!-- set required properties -->
|
|
<set property="current.scp.local.dir"
|
|
source="scp.local.dir"/>
|
|
<set property="current.native.dist.file"
|
|
source="native.dist.file.${platform}"/>
|
|
|
|
<!-- delete the distributive -->
|
|
<delete dir="${scp.local.dir}/${current.native.dist.file}"/>
|
|
</target>
|
|
|
|
<!--
|
|
Cleans up the netbeans part of the project.
|
|
|
|
It runs the 'clean' target on the netbeans project's build script.
|
|
|
|
This target is only executed if the the ${build.nbproject} property was
|
|
set to 'true'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".clean-nbproject" if="do.build.nbproject">
|
|
<!-- check whether the netbeans project's directory exists -->
|
|
<condition property="nbproject.exists" value="true">
|
|
<available file="${cvs.dir}/${nbproject.path}"/>
|
|
</condition>
|
|
|
|
<!-- is it exists, run the 'clean' target on the netbeans project's
|
|
build script -->
|
|
<if property="nbproject.exists" value="true">
|
|
<condition property="nb.jdk.home"
|
|
value="${nb.platform.home}"
|
|
else="${nb.platform.home.macos}">
|
|
<not>
|
|
<equals arg1="Apple Inc." arg2="${java.vendor}"/>
|
|
</not>
|
|
</condition>
|
|
|
|
<exec executable="${ant.executable}"
|
|
dir="${cvs.dir}/${nbproject.path}"
|
|
failonerror="false"
|
|
failifexecutionfails="false">
|
|
<env key="JAVA_HOME" value="${java.home}"/>
|
|
<arg value="${nb.target.clean}"/>
|
|
|
|
<arg value="${nb.jdk.home}"/>
|
|
<arg value="${nb.ignore.native}"/>
|
|
<arg value="${nb.no.dependencies}"/>
|
|
<arg value="${nb.dont.build.custom.tasks}"/>
|
|
<arg value="${nb.custom.tasks.cls}"/>
|
|
<arg value="${nb.custom.parameter}"/>
|
|
</exec>
|
|
</if>
|
|
</target>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed prior to cleaning the projects's local working directory.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-pre-clean"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It must be overriden in derivative scripts, in order to implement custom
|
|
functionality required for the cleaning the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-clean" depends=".clean"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed after cleaning the project's local working directory.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-post-clean"/>
|
|
|
|
<!-- ============================================================================
|
|
Check-out
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Checks out the the project's sources from the CVS repository.
|
|
|
|
This is an aggregation target, it does not contain any functionality, but
|
|
defines dependencies on '-pre-checkout', '-checkout' and '-post-checkout'
|
|
targets. The '-pre-checkout' and '-post-checkout' target are empty hooks,
|
|
which allow derivative scripts to inject custom logic which will be
|
|
executed prior to the check-out process or after it. The '-checkout'
|
|
target contains the code which actually checks out the sources and should
|
|
be overriden in the derivative scripts.
|
|
-->
|
|
<target name="checkout"
|
|
depends="init,-pre-checkout,-checkout,-post-checkout"/>
|
|
|
|
<!--
|
|
Checks out sources from a CVS repository with the given coordinates.
|
|
|
|
This target uses the values of ${cvs.root}, ${cvs.module}, ${cvs.path},
|
|
${cvs.branch}, ${cvs.timestamp} properties to check out the required sources.
|
|
It falls back to the two targets: '.checkout-repository' and '.checkout-copy',
|
|
which correspond to the choosen check-out method. Only one of these
|
|
targets will be executed under any conditions.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".checkout"
|
|
depends=".checkout-repository,.pre-checkout-copy,.checkout-copy,.post-checkout-copy">
|
|
<copy todir="${cvs.dir}" failonerror="false">
|
|
<fileset dir="${translatedfiles.dir}"/>
|
|
</copy>
|
|
|
|
<!-- substitute the params in the source tree -->
|
|
<for-each from="1" to="${sources.params.length}" property="i">
|
|
<set property="current.token"
|
|
source="sources.params.${i}.token"/>
|
|
<set property="current.value"
|
|
source="sources.params.${i}.value"/>
|
|
|
|
<replace dir="${cvs.dir}"
|
|
token="${current.token}"
|
|
value="${current.value}"/>
|
|
</for-each>
|
|
</target>
|
|
|
|
<!--
|
|
Checks out sources from trunk or from a given branch.
|
|
|
|
This target executes the <cvs> task, which performs the actual check-out.
|
|
|
|
This target is only executed if the the ${checkout.sources} property was
|
|
set to 'true' and the ${cvs.branch} property is not empty.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".checkout-repository" if="do.checkout">
|
|
<cvs cvsroot="${cvs.root}"
|
|
command="checkout"
|
|
package="${cvs.module}/${cvs.path}"
|
|
tag="${cvs.branch}"
|
|
date="${cvs.timestamp}"
|
|
dest="${work.dir}"
|
|
failonerror="true"/>
|
|
<cvs cvsroot="${cvs.root}"
|
|
command="checkout"
|
|
package="${translatedfiles.module}/${translatedfiles.path}"
|
|
tag="${cvs.branch}"
|
|
date="${cvs.timestamp}"
|
|
dest="${work.dir}"
|
|
failonerror="false"/>
|
|
</target>
|
|
|
|
<!--
|
|
Copies the sources from a given location.
|
|
|
|
This target serves as an alternative to the actual check-out targets and
|
|
is used in case when the calling script already knows the location of the
|
|
appropriate source files and there is no need to check them out again.
|
|
|
|
Several filters are applied to the sources files, e.g. no already built
|
|
files are copied, the private parts of the netbeans projects are omitted,
|
|
CVS metadata is also omitted.
|
|
|
|
This target is only executed if the the ${checkout.sources} property was
|
|
set to 'false'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".checkout-copy" if="do.checkout.copy">
|
|
<!-- create the destination directory for the sources -->
|
|
<mkdir dir="${work.dir}/${cvs.module}/${cvs.path}"/>
|
|
|
|
<!-- copy the sources, applying the selected filters -->
|
|
<copy todir="${work.dir}/${cvs.module}/${cvs.path}" verbose="true">
|
|
<fileset dir="${sources.dir}/${cvs.module}/${cvs.path}">
|
|
<include name="**/*.*"/>
|
|
<exclude name="**/nbproject/private/*.*"/>
|
|
<exclude name="build/**/*.*"/>
|
|
<exclude name="dist/**/*.*"/>
|
|
<exclude name="**/CVS"/>
|
|
<exclude name="**/.cvsignore"/>
|
|
</fileset>
|
|
</copy>
|
|
<!-- copy the translatedfiles for the sources, applying the selected filters -->
|
|
<copy todir="${translatedfiles.dir}" verbose="true" failonerror="false">
|
|
<fileset dir="${sources.dir}/${translatedfiles.module}/${translatedfiles.path}">
|
|
<include name="**/*.*"/>
|
|
<exclude name="**/nbproject/private/*.*"/>
|
|
<exclude name="build/**/*.*"/>
|
|
<exclude name="dist/**/*.*"/>
|
|
<exclude name="**/CVS"/>
|
|
<exclude name="**/.cvsignore"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!--
|
|
Empty hooks.
|
|
|
|
They allow derivative scripts to inject custom logic which will be
|
|
executed prior and after copying out the project's sources.
|
|
|
|
These targets are not intended to be called directly.
|
|
-->
|
|
<target name=".pre-checkout-copy"/>
|
|
<target name=".post-checkout-copy"/>
|
|
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed prior to checking out the project's sources.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-pre-checkout"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It must be overriden in derivative scripts, in order to implement custom
|
|
functionality required for the correctly checking out the project's
|
|
sources.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-checkout" depends=".checkout"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed after checking out the project's sources.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-post-checkout"/>
|
|
|
|
<!-- ============================================================================
|
|
Build
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Builds the project and (optionally) its native components.
|
|
|
|
It is assumed that the sources of the project are already checked out,
|
|
but a dependency on the 'checkout' target is not defined as it may be
|
|
desirable to check-out the sources once and then rebuild the engine as
|
|
appropriate.
|
|
|
|
The build process consists of two steps: first, the native components
|
|
of the project (jni libraries) are built (if it is required), then the
|
|
projects's netbeans part is compiled and packaged.
|
|
|
|
This is an aggregation target, it does not contain any functionality, but
|
|
defines dependencies on '-pre-build', '-build' and '-post-build'
|
|
targets. The '-pre-build' and '-post-build' target are empty hooks,
|
|
which allow derivative scripts to inject custom logic which will be
|
|
executed prior to the build process or after it. The '-build' target
|
|
contains the code which actually builds the project and should be
|
|
overriden in the derivative scripts.
|
|
-->
|
|
<target name="build" depends="init,-pre-build,-build,-post-build"/>
|
|
|
|
<!--
|
|
Performs the standard build procedures.
|
|
|
|
This target builds the native components for the project (iterates over
|
|
the list of platforms, calling the '.build-native' target) and executes
|
|
the 'build' target on the netbeans part of the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".build">
|
|
<!-- for each of the defined platforms set the appropriate property
|
|
and execute the build procedure -->
|
|
<for-each list="${native.platforms}" property="platform">
|
|
<antcall target=".build-native"/>
|
|
</for-each>
|
|
|
|
<!-- run the 'build' target on the netbeans project -->
|
|
<antcall target=".build-nbproject"/>
|
|
</target>
|
|
|
|
<!--
|
|
Builds the native components of the project for a given platform.
|
|
|
|
By default this target falls back to the '.build-jni' target, which
|
|
builds the jni libraries for the project.
|
|
|
|
This target is called in a loop from the '.build-native' target, and
|
|
expects the ${platform} property to contain the code mane of the platform
|
|
for which the native components should be built.
|
|
|
|
This target is only executed if the the ${build.native} property was set
|
|
to 'true'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".build-native" if="do.build.native">
|
|
<antcall target=".build-jni"/>
|
|
</target>
|
|
|
|
<!--
|
|
Builds the jni library for the given platform.
|
|
|
|
This target is antcall'ed as part of the call to the '.build-native'
|
|
target, and expects the ${platform} property to contain the code name of
|
|
the platform for which the library should be built.
|
|
|
|
It connects to the registered satellite machine for the current platform
|
|
using the 'ssh' utility, checks out the library's sources and builds it.
|
|
The built binary is then copied back to the host machine using 'scp'.
|
|
|
|
This target is only executed if the the ${build.native} property was set
|
|
to 'true'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".build-jni" if="do.build.native">
|
|
<!-- set required properties -->
|
|
<set property="remote.host"
|
|
source="remote.host.${platform}"/>
|
|
<set property="remote.port"
|
|
source="remote.port.${platform}"/>
|
|
<set property="remote.user"
|
|
source="remote.user.${platform}"/>
|
|
|
|
<set property="current.native.dist.file"
|
|
source="native.dist.file.${platform}"/>
|
|
|
|
<!-- now we need to re-evaluate the values of the ssh and scp-related
|
|
properties as they contain references to the properties that have
|
|
just been set above -->
|
|
<set property="current.ssh.arguments"
|
|
source="ssh.arguments"/>
|
|
<set property="current.ssh.command.clean"
|
|
source="ssh.command.clean"/>
|
|
<set property="current.ssh.command.build"
|
|
source="ssh.command.build"/>
|
|
|
|
<set property="current.scp.arguments"
|
|
source="scp.arguments"/>
|
|
<set property="current.scp.remote.dir"
|
|
source="scp.remote.dir"/>
|
|
<set property="current.scp.local.dir"
|
|
source="scp.local.dir"/>
|
|
|
|
<!-- run the ssh command - it is expected that it will build
|
|
everything -->
|
|
<exec executable="${ssh.executable}" failonerror="true">
|
|
<arg line="${current.ssh.arguments}"/>
|
|
<arg value="${current.ssh.command.build}"/>
|
|
</exec>
|
|
|
|
<!-- run the scp command to copy the resulting file back to the
|
|
host system -->
|
|
<mkdir dir="${current.scp.local.dir}"/>
|
|
<exec executable="${scp.executable}" failonerror="true">
|
|
<arg line="${current.scp.arguments}"/>
|
|
<arg value="${current.scp.remote.dir}/${current.native.dist.file}"/>
|
|
<arg value="${current.scp.local.dir}/${current.native.dist.file}"/>
|
|
</exec>
|
|
|
|
<!-- run the ssh command - we need to clean after us -->
|
|
<exec executable="${ssh.executable}" failonerror="true">
|
|
<arg line="${current.ssh.arguments}"/>
|
|
<arg value="${current.ssh.command.clean}"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<!--
|
|
Builds the netbeans part of the project.
|
|
|
|
It runs the 'jar' target on the netbeans project's build script.
|
|
|
|
This target is only executed if the the ${build.nbproject} property was
|
|
set to 'true'.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name=".build-nbproject" if="do.build.nbproject">
|
|
<condition property="nb.jdk.home"
|
|
value="${nb.platform.home}"
|
|
else="${nb.platform.home.macos}">
|
|
<not>
|
|
<equals arg1="Apple Inc." arg2="${java.vendor}"/>
|
|
</not>
|
|
</condition>
|
|
|
|
<exec executable="${ant.executable}"
|
|
dir="${cvs.dir}/${nbproject.path}"
|
|
failonerror="true"
|
|
failifexecutionfails="true"
|
|
errorproperty="error.property">
|
|
<env key="JAVA_HOME" value="${java.home}"/>
|
|
<arg value="clean"/>
|
|
<arg value="compile"/>
|
|
|
|
<arg value="${nb.jdk.home}"/>
|
|
<arg value="${nb.ignore.native}"/>
|
|
<arg value="${nb.no.dependencies}"/>
|
|
<arg value="${nb.dont.build.custom.tasks}"/>
|
|
<arg value="${nb.custom.tasks.cls}"/>
|
|
<arg value="${nb.custom.parameter}"/>
|
|
</exec>
|
|
|
|
<mkdir dir="${nbproject.dist.dir}"/>
|
|
|
|
<jar manifest="${cvs.dir}/${nbproject.path}/${nbproject.manifest}"
|
|
destfile="${nbproject.dist.dir}/${nbproject.dist.file.name}">
|
|
<fileset dir="${cvs.dir}/${nbproject.path}/build/classes">
|
|
<include name="**/*.*"/>
|
|
</fileset>
|
|
</jar>
|
|
</target>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed prior to building the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-pre-build"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It must be overriden in derivative scripts, in order to implement custom
|
|
functionality required for the correctly building the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-build" depends=".build"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed after building the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-post-build"/>
|
|
|
|
<!-- ============================================================================
|
|
Release
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Releases the project to the registries server.
|
|
|
|
It is assumed that the project has already been built, but a dependency
|
|
on the 'build' target is not defined, as it may be desirable to build
|
|
once and then release several times to different registries servers.
|
|
|
|
This is an aggregation target, it does not contain any functionality, but
|
|
defines dependencies on '-pre-release', '-release' and '-post-release'
|
|
targets. The '-pre-release' and '-post-release' target are empty hooks,
|
|
which allow derivative scripts to inject custom logic which will be
|
|
executed prior to the release process or after it. The '-release' target
|
|
contains the code which actually releases the project and should be
|
|
overriden in the derivative scripts.
|
|
-->
|
|
<target name="release" depends="init,-pre-release,-release,-post-release"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed prior to releasing the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-pre-release"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It must be overriden in derivative scripts, in order to implement custom
|
|
functionality required for the correctly releasing the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-release"/>
|
|
|
|
<!--
|
|
An empty hook.
|
|
|
|
It allows derivative scripts to inject custom logic which will be
|
|
executed after releasing the project.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-post-release"/>
|
|
|
|
<!-- ============================================================================
|
|
Default
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
The default target.
|
|
|
|
Does nothing except printing the usage information.
|
|
-->
|
|
<target name="usage">
|
|
<echo>
|
|
This build script is a targets library and must not be used
|
|
directly.
|
|
</echo>
|
|
</target>
|
|
</project>
|
|
|