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.
283 lines
12 KiB
283 lines
12 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 the base build script for an nbi group package.
|
|
|
|
It is not intended to be used directly, but to be imported into derivative
|
|
implementation scripts, which will provide properties' values that are
|
|
specific the concrete group implementation. The derivative scripts may also
|
|
provide some additional functionality that is required by their respective
|
|
group implementations.
|
|
|
|
This script exposes five primary targets: 'init', 'clean', 'checkout',
|
|
'build' and 'release'; as well as two aggregate targets: 'build-all',
|
|
which tranlates into 'init', 'clean', 'checkout', 'build', and
|
|
'release-all' - 'init', 'clean', 'checkout', 'build', 'release'. For the
|
|
detailed description of the functionality of these targets, consult the
|
|
corresponding documentation.
|
|
-->
|
|
<project name="group" default="usage" basedir=".">
|
|
<!-- a default value for the ${common.dir} property, which allows the user
|
|
to see the usage information is he calls this script directly and not
|
|
via a derivative (which is the proper way to do this) -->
|
|
<property name="common.dir" value="${basedir}"/>
|
|
|
|
<!-- import the common properties -->
|
|
<property file="${common.dir}/common.properties"/>
|
|
|
|
<!-- import properties specific to the group package's build script -->
|
|
<property file="${common.dir}/group.properties"/>
|
|
|
|
<!-- import the common target library -->
|
|
<import file="common.xml" optional="false"/>
|
|
|
|
<!-- ============================================================================
|
|
Initialization
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Initializes the group package's build script.
|
|
|
|
This target overrides the '-init' target in common.xml, providing the
|
|
custom functionality that is required for the group package's build
|
|
script initialization.
|
|
|
|
In addition to the standard initialization routine, this target defines
|
|
several custom ant tasks, which are specific to the group package's build
|
|
script.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-init" depends=".init">
|
|
<!-- define custom ant tasks -->
|
|
<taskdef
|
|
name="sizeof"
|
|
classname="org.netbeans.installer.infra.build.ant.SizeOf"
|
|
classpath="${custom.tasks.cls}"/>
|
|
<taskdef
|
|
name="md5"
|
|
classname="org.netbeans.installer.infra.build.ant.Md5"
|
|
classpath="${custom.tasks.cls}"/>
|
|
<taskdef
|
|
name="load-locales"
|
|
classname="org.netbeans.installer.infra.build.ant.LoadLocales"
|
|
classpath="${custom.tasks.cls}"/>
|
|
<taskdef
|
|
name="group-descriptor"
|
|
classname="org.netbeans.installer.infra.build.ant.GroupDescriptor"
|
|
classpath="${custom.tasks.cls}"/>
|
|
|
|
<if property="release.to.server" value="true">
|
|
<taskdef
|
|
name="release-package-server"
|
|
classname="org.netbeans.installer.infra.build.ant.ReleasePackage"
|
|
classpath="${custom.tasks.cls}"/>
|
|
</if>
|
|
|
|
<if property="release.to.server" value="false">
|
|
<taskdef
|
|
name="release-package-filesystem"
|
|
classname="org.netbeans.installer.infra.build.ant.registries.AddPackage"
|
|
classpath="${custom.tasks.cls}"/>
|
|
</if>
|
|
</target>
|
|
|
|
<!-- ============================================================================
|
|
Clean-up
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Cleans the current working directory and the distributives directory.
|
|
|
|
This target overrides the '-clean' target in common.xml, providing the
|
|
custom functionality that is required for correctly cleaning the group
|
|
package.
|
|
|
|
In addition to the standard behavior the group package distributive file
|
|
is removed from the distributives directory.
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-clean" depends=".clean">
|
|
<!-- remove the group's distributive file from the distributives
|
|
directory -->
|
|
<delete file="${dist.dir}/${group.dist.file.name}"/>
|
|
</target>
|
|
|
|
<!-- ============================================================================
|
|
Check-out
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
The functionality of the checkout procedure for the group package is
|
|
indentical to the standard one, thus there is not need to override the
|
|
'-checkout' target, whosew default implementation is present in
|
|
common.xml.
|
|
-->
|
|
|
|
<!-- ============================================================================
|
|
Build
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Builds the group package.
|
|
|
|
This target overrides the '-build' target in common.xml, providing the
|
|
custom functionality that is required for correctly building the group
|
|
package.
|
|
|
|
The build process for the grup package consists of four steps.
|
|
1) The group's icon is copied from its location to the group's package
|
|
directory structure and some metadata is calculated
|
|
|
|
2) The group's localizing bundle is loaded and the group package
|
|
descriptor is generated
|
|
|
|
3) The manifest for the group package is generated
|
|
|
|
4) The package directory structure is jarred, digitally signed and moved
|
|
to the distributives directory
|
|
|
|
This target is not intended to be called directly.
|
|
-->
|
|
<target name="-build" depends=".build">
|
|
<!-- copy the group's icon to the soon-to-be package directory
|
|
structure and calculate some metadata for it -->
|
|
<copy file="${group.icon}"
|
|
tofile="${package.dir}/${group.icon.path}"/>
|
|
<sizeof file="${package.dir}/${group.icon.path}"
|
|
property="group.icon.size"/>
|
|
<md5 file="${package.dir}/${group.icon.path}"
|
|
property="group.icon.md5"/>
|
|
<set
|
|
property="group.icon.correct.uri"
|
|
value="${group.icon.uri}"/>
|
|
|
|
<!-- load the group's localizing bundle and store the locales list to
|
|
${group.locales.list} -->
|
|
<load-locales basename="${group.bundle}" list="group.locales.list"/>
|
|
|
|
<!-- generate the group package descriptor -->
|
|
<group-descriptor file="${package.dir}/${package.descriptor.path}"/>
|
|
|
|
<!-- create the package jar file and sign it -->
|
|
<jar basedir="${package.dir}"
|
|
destfile="${work.dir}/${group.dist.file.name}"
|
|
compress="true">
|
|
<manifest>
|
|
<attribute
|
|
name="Product-Descriptor"
|
|
value="${package.descriptor.path}"/>
|
|
</manifest>
|
|
</jar>
|
|
|
|
<!-- copy the distributive to the distributives directory -->
|
|
<move file="${work.dir}/${group.dist.file.name}"
|
|
todir="${dist.dir}"/>
|
|
<if property="jarsigner.enabled" value="true">
|
|
<signjar jar="${dist.dir}/${group.dist.file.name}"
|
|
keystore="${jarsigner.keystore}"
|
|
storepass="${jarsigner.storepass}"
|
|
alias="${jarsigner.alias}"
|
|
maxmemory="${jarsigner.xmx}"/>
|
|
</if>
|
|
</target>
|
|
|
|
<!-- ============================================================================
|
|
Release
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
Releases the group package to the registries server.
|
|
|
|
This target overrides the '-release' target in common.xml, providing the
|
|
custom functionality that is required for correctly releasing the group
|
|
package.
|
|
|
|
It is assumed that the group package 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 target is not intended to be called directly.
|
|
-->
|
|
<target name="-release">
|
|
<if property="release.to.server" value="true">
|
|
<echo message="Release URL is ${release.url}"/>
|
|
<echo message="Archive is ${dist.dir}/${group.dist.file.name}"/>
|
|
|
|
<release-package-server
|
|
url="${release.url}"
|
|
registry="${release.registry}"
|
|
uid="${release.parent.uid}"
|
|
version="${release.parent.version}"
|
|
archive="${dist.dir}/${group.dist.file.name}"/>
|
|
</if>
|
|
<if property="release.to.server" value="false">
|
|
<echo message="Registry root is ${release.registry.dir}"/>
|
|
<echo message="Archive is ${dist.dir}/${group.dist.file.name}"/>
|
|
|
|
<release-package-filesystem
|
|
root="${release.registry.dir}"
|
|
uid="${release.parent.uid}"
|
|
version="${release.parent.version}"
|
|
archive="${dist.dir}/${group.dist.file.name}"/>
|
|
</if>
|
|
</target>
|
|
|
|
<!-- ============================================================================
|
|
Default
|
|
============================================================================= -->
|
|
|
|
<!--
|
|
The default target.
|
|
|
|
Does nothing except printing the usage information.
|
|
-->
|
|
<target name="usage">
|
|
<echo>
|
|
This is the base build script for nbi group package and is not
|
|
intended to be called directly. In order to create a derivative
|
|
implementation script, see
|
|
${basedir}/.templates/group-template.xml
|
|
</echo>
|
|
</target>
|
|
</project>
|
|
|