| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| <project name="nbbuild" default="build-nozip" basedir="." xmlns:if="ant:if" xmlns:unless="ant:unless"> |
| |
| <fail message="Please build using Ant 1.9.3 or higher."> |
| <condition> |
| <not> |
| <antversion atleast="1.9.3"/> |
| </not> |
| </condition> |
| </fail> |
| |
| <import file="default.xml"/> |
| |
| <!-- To make people happy who want to do `ant clean all': --> |
| <target name="all" depends="build,commit-validation" description="Build the IDE and run basic validation tests."/> |
| |
| <target name="all-nozip" depends="build-nozip,commit-validation" description="Build the IDE (no ZIP file, unpacked) and run basic validation tests."/> |
| |
| <target name="bootstrap" description="Bootstrap NetBeans-specific Ant extensions." |
| depends="-jdk-init,-load-build-properties"> |
| <fail message="You need to run on JDK 8+ to build NetBeans; java.home=${java.home}"> |
| <condition> |
| <matches pattern="^1\.[01234567].*" string="${java.version}"/> |
| </condition> |
| </fail> |
| <fail message="You need JDK 8+ to build NetBeans; nbjdk.home=${nbjdk.home} java.home=${java.home}"> |
| <condition> |
| <not> |
| <or> |
| <isset property="have-jdk-1.8"/> |
| <isset property="have-jdk-1.9"/> |
| </or> |
| </not> |
| </condition> |
| </fail> |
| |
| <property name="build.ant.classes.dir" location="${nb.build.dir}/antclasses"/> |
| <mkdir dir="${build.ant.classes.dir}"/> |
| <javac srcdir="antsrc" destdir="${build.ant.classes.dir}" deprecation="true" debug="${build.compiler.debug}" source="1.8" target="1.8"> |
| <classpath> |
| <pathelement location="${ant.core.lib}"/> |
| </classpath> |
| <include name="org/netbeans/nbbuild/extlibs/DeregisterExternalHook.java"/> |
| <include name="org/netbeans/nbbuild/extlibs/DownloadBinaries.java"/> |
| <compilerarg line="-Xlint -Xlint:-serial"/> |
| </javac> |
| <taskdef name="deregisterexternalhook" classname="org.netbeans.nbbuild.extlibs.DeregisterExternalHook" classpath="${build.ant.classes.dir}"/> |
| <deregisterexternalhook root=".."/> |
| <taskdef name="downloadbinaries" classname="org.netbeans.nbbuild.extlibs.DownloadBinaries" classpath="${build.ant.classes.dir}"/> |
| <taskdef name="configureproxy" classname="org.netbeans.nbbuild.extlibs.ConfigureProxy" classpath="${build.ant.classes.dir}"/> |
| <property name="have-downloadbinaries-task" value="true" /> |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> |
| <manifest dir="${nb_all}"> |
| <include name="nbbuild/external/binaries-list"/> |
| <include name="platform/libs.junit4/external/binaries-list"/> |
| <include name="platform/javahelp/external/binaries-list"/> |
| </manifest> |
| </downloadbinaries> |
| <!-- |
| nb-extra-files denotes directories/files, that are not packed for |
| distribution. The clusters are only used for local development/testing. |
| The files must not be included in distribution zip and also need to be |
| excluded from license analysis |
| --> |
| <property name="nb-extra-files" value="test/**,extra/**"/> |
| |
| <echo message="Bootstrapping NetBeans-specific Ant extensions..."/> |
| <path id="bootstrap-cp"> |
| <pathelement location="${ant.core.lib}"/> |
| <fileset dir=".."> |
| <!-- For JavaHelp indexing and link checking: --> |
| <include name="platform/javahelp/external/jhall*.jar"/> |
| <!-- For json parsing --> |
| <include name="nbbuild/external/json-simple*.jar"/> |
| </fileset> |
| </path> |
| <javac srcdir="antsrc" destdir="${build.ant.classes.dir}" deprecation="true" debug="${build.compiler.debug}" source="1.8" target="1.8"> |
| <classpath refid="bootstrap-cp"/> |
| <compilerarg line="-Xlint -Xlint:-serial"/> |
| </javac> |
| <jar jarfile="${nbantext.jar}"> |
| <fileset dir="${build.ant.classes.dir}"/> |
| <fileset dir="antsrc"> |
| <exclude name="**/*.java"/> |
| <exclude name="**/package.html"/> |
| <exclude name="package-list"/> |
| </fileset> |
| <zipfileset dir="${nb_all}" includes="LICENSE" fullpath="META-INF/LICENSE"/> |
| <zipfileset dir="${nb_all}/nbbuild" includes="notice-stub.txt" fullpath="META-INF/NOTICE"/> |
| </jar> |
| <taskdef name="createlicensesummary" classname="org.netbeans.nbbuild.extlibs.CreateLicenseSummary" classpath="${nbantext.jar}"/> |
| <!-- get all json info we have on apache gitbox --> |
| <property name="metabuild.releasejson" value="${nb_all}/nbbuild/build/netbeansrelease.json"/> |
| <condition property="metabuild.jsonurl" value="https://gitbox.apache.org/repos/asf?p=netbeans-jenkins-lib.git;a=blob_plain;f=meta/netbeansrelease.json"> |
| <not> |
| <isset property="metabuild.jsonurl"/> |
| </not> |
| </condition> |
| <configureproxy connectTo="${metabuild.jsonurl}" hostProperty="proxyHost" portProperty="proxyPort"/> |
| <setproxy proxyhost="${proxyHost}" proxyPort="${proxyPort}"/> |
| <get dest="${metabuild.releasejson}" skipexisting="false" src="${metabuild.jsonurl}" /> |
| <!-- read info from gitinfo.properties , if present in source bundle copy gitinfo--> |
| <copy file="${nb_all}/nbbuild/gitinfo.properties" tofile="${nb_all}/nbbuild/build/gitinfo.properties" failonerror="false"/> |
| <copy file="${nb_all}/nbbuild/netbeansrelease.properties" tofile="${nb_all}/nbbuild/build/netbeansrelease.properties" failonerror="false"/> |
| <!-- get branches and git information as previous not overrided this will take new--> |
| <antcall target="getgitinformation" /> |
| <!-- javadoc content filtering --> |
| <taskdef name="setjavadoc" classname="org.netbeans.nbbuild.SetApidocClustersConfig" classpath="${nbantext.jar}"/> |
| <property file="${nb_all}/nbbuild/build/gitinfo.properties"/> |
| <property file="${nb_all}/nbbuild/build/netbeansrelease.properties"/> |
| <setjavadoc branch="${metabuild.branch}"/> |
| <echo message="Building branch: ${metabuild.branch}"/> |
| <property name="releasejson" value="${nb_all}/nbbuild/build/netbeansrelease.json"/> |
| <property name="xmlrelease" value="${nb_all}/nbbuild/build/netbeansrelease.xml"/> |
| <property name="propertiesrelease" value="${nb_all}/nbbuild/build/netbeansrelease.properties"/> |
| <taskdef name="releasejson" classname="org.netbeans.nbbuild.ReleaseJsonProperties" > |
| <classpath> |
| <pathelement location="${nbantext.jar}"/> |
| <fileset dir="${nb_all}/nbbuild/external"> |
| <include name="json*.jar"/> |
| </fileset> |
| </classpath> |
| </taskdef> |
| <releasejson file="${releasejson}" xmloutput="${xmlrelease}" propertiesoutput="${propertiesrelease}" branch="${metabuild.branch}" hash="${metabuild.hash}"/> |
| </target> |
| <target name="-gitinfo.ispresent"> |
| <available file="${nb_all}/nbbuild/build/gitinfo.properties" property="gitinfo.present" /> |
| </target> |
| <target name="-git.down" unless="${gitinfo.present}" depends="-gitinfo.ispresent"> |
| <!-- try to get information from jenkins apache multi branch build or travis --> |
| <taskdef name="gitbranchhash" classname="org.netbeans.nbbuild.GitBranchHash" classpath="${nbantext.jar}" /> |
| <property environment="env"/> |
| <condition property="metabuild.branch" value="${env.GIT_BRANCH}" > |
| <isset property="env.GIT_BRANCH" /> |
| </condition> |
| <condition property="metabuild.branch" value="${env.TRAVIS_BRANCH}" > |
| <isset property="env.TRAVIS_BRANCH" /> |
| </condition> |
| <condition property="metabuild.branch" value="${metabuild.branch}" > |
| <isset property="metabuild.branch" /> |
| </condition> |
| <condition property="metabuild.hash" value="${env.GIT_COMMIT}" > |
| <isset property="env.GIT_COMMIT" /> |
| </condition> |
| <condition property="metabuild.hash" value="${env.TRAVIS_COMMIT}" > |
| <isset property="env.TRAVIS_COMMIT" /> |
| </condition> |
| <condition property="metabuild.hash" value="${metabuild.hash}" > |
| <isset property="metabuild.hash" /> |
| </condition> |
| |
| <gitbranchhash file="." branchproperty="metabuild.branch" hashproperty="metabuild.hash" /> |
| |
| <condition property="metabuild.branch" value="master" > |
| <not> |
| <isset property="metabuild.branch" /> |
| </not> |
| </condition> |
| |
| <echo message="Processing build with branch ${metabuild.branch} and hash ${metabuild.hash}" /> |
| <!-- if hash not present do not fail --> |
| <fail message="Branch not found use -Dmetabuild.branch=branchName " > |
| <condition> |
| <not> |
| <isset property="metabuild.branch"/> |
| </not> |
| </condition> |
| </fail> |
| <echo unless:set="metabuild.hash" file="${nb_all}/nbbuild/build/gitinfo.properties" >metabuild.branch=${metabuild.branch}</echo> |
| <echo if:set="metabuild.hash" file="${nb_all}/nbbuild/build/gitinfo.properties" >metabuild.branch=${metabuild.branch} |
| metabuild.hash=${metabuild.hash}</echo> |
| </target> |
| <target name="-git.up" if="${gitinfo.present}" depends="-gitinfo.ispresent"> |
| <property file="${nb_all}/nbbuild/build/gitinfo.properties"/> |
| <echo message="Processing build with branch ${metabuild.branch} and hash ${metabuild.hash}" /> |
| </target> |
| <target name="getgitinformation" depends="-git.up,-git.down" /> |
| <target name="download-all-extbins" unless="ext.binaries.downloaded" depends="bootstrap"> |
| <echo>Downloading external binaries (*/external/ directories)...</echo> |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> |
| <manifest dir="${nb_all}"> |
| <include name="**/external/binaries-list"/> |
| </manifest> |
| </downloadbinaries> |
| <property name="ext.binaries.downloaded" value="true"/> |
| </target> |
| |
| <target name="download-selected-extbins" unless="ext.binaries.downloaded" depends="init-module-list"> |
| <echo>Downloading external binaries (*/external/ directories) for cluster.config=${cluster.config}...</echo> |
| <pathconvert property="modules.binaries-list" pathsep=","> |
| <path> |
| <dirset dir="${nb_all}" includes="nbbuild,${allmodules}"/> |
| </path> |
| <map from="${nb_all}/" to=""/> |
| <globmapper from="*" to="*/external/binaries-list"/> |
| </pathconvert> |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> |
| <manifest dir="${nb_all}" includes="${modules.binaries-list}"/> |
| </downloadbinaries> |
| </target> |
| |
| <target name="-check-vanilla-javac" depends="bootstrap"> |
| <condition property="vanilla.javac.exists"> |
| <and> |
| <available file="${nb_all}/nbbuild/external/vanilla-javac-api.jar" /> |
| <available file="${nb_all}/nbbuild/external/vanilla-javac-impl.jar" /> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="prepare-vanilla-javac" depends="-check-vanilla-javac" unless="vanilla.javac.exists"> |
| <delete dir="${nb_all}/nbbuild/build/langtools" /> |
| <mkdir dir="${nb_all}/nbbuild/build/langtools" /> |
| <unzip src="${nb_all}/nbbuild/external/langtools-9.zip" dest="${nb_all}/nbbuild/build/langtools"> |
| <cutdirsmapper dirs="1"/> |
| </unzip> |
| <ant antfile="${nb_all}/nbbuild/build/langtools/make/build.xml" dir="${nb_all}/nbbuild/build/langtools/" target="generate-sources"> |
| <property name="langtools.jdk.home" value="${java.home}" /> |
| </ant> |
| <mkdir dir="${nb_all}/nbbuild/build/langtools/build/nb" /> |
| <javac srcdir="${nb_all}/nbbuild/build/langtools/src/java.compiler/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.compiler/share/classes:${nb_all}/nbbuild/build/langtools/src/jdk.jdeps/share/classes:${nb_all}/nbbuild/build/langtools/build/gensrc/jdk.compiler" |
| destdir="${nb_all}/nbbuild/build/langtools/build/nb" |
| excludes="**/module-info.java,com/sun/tools/javac/main/JavacToolProvider.java,com/sun/tools/jdeps/**,com/sun/tools/jdeprscan/**,com/sun/tools/javap/Main.java,jdk/javadoc/internal/tool/JavadocToolProvider.java,com/sun/tools/doclets/standard/Standard.java" source="1.8" target="1.8"/> |
| <copy todir="${nb_all}/nbbuild/build/langtools/build/nb"> |
| <fileset dir="${nb_all}/nbbuild/build/langtools/src/java.compiler/share/classes" includes="**/*.properties"/> |
| <fileset dir="${nb_all}/nbbuild/build/langtools/src/jdk.compiler/share/classes" includes="**/*.properties"/> |
| <fileset dir="${nb_all}/nbbuild/build/langtools/src/jdk.jdeps/share/classes" includes="**/*.properties"/> |
| </copy> |
| <jar destfile="${nb_all}/nbbuild/external/vanilla-javac-api.jar" basedir="${nb_all}/nbbuild/build/langtools/build/nb" includes="javax/**,com/sun/source/**" /> |
| <jar destfile="${nb_all}/nbbuild/external/vanilla-javac-impl.jar" basedir="${nb_all}/nbbuild/build/langtools/build/nb" excludes="javax/**,com/sun/source/**,com/sun/javadoc/**" /> |
| </target> |
| |
| <target name="init-module-list" depends="bootstrap,init-tasks,prepare-vanilla-javac"> |
| <!-- Define modules. --> |
| <checkmoduleconfigs nbroot=".."/> |
| <resolvelist name="allmodules" path="modules.fullpath" dir="${nb_all}" list="${nb.clusters.list}"/> |
| <sortsuitemodules unsortedmodules="${modules.fullpath}" sortedmodulesproperty="modules.sorted"/> |
| </target> |
| |
| <target name="init" depends="init-module-list,set-buildnumber"> |
| <fail message="You need to have some modules checked out to build NetBeans. For example, try running the 'checkout' target."> |
| <condition> |
| <not> |
| <available file="../platform/core.startup/"/> |
| </not> |
| </condition> |
| </fail> |
| <taskdef name="nbmerge" classname="org.netbeans.nbbuild.NbMerge" classpath="${nbantext.jar}"/> |
| <taskdef name="getdependsclusters" classname="org.netbeans.nbbuild.GetDependsClusters" classpath="${nbantext.jar}"/> |
| <taskdef name="repeat" classname="org.netbeans.nbbuild.Repeat" classpath="${nbantext.jar}"/> |
| |
| <!-- Set up automatic all-* targets: --> |
| <taskdef name="insert-module-all-targets" classname="org.netbeans.nbbuild.InsertModuleAllTargets" classpath="${nbantext.jar}"/> |
| <property name="verify.checkout" value="true"/> |
| <property name="init.use.clusters" value="true"/> |
| <insert-module-all-targets checkModules="${verify.checkout}" useclusters="${init.use.clusters}"/> |
| </target> |
| |
| <target name="all-installer" description="Dummy target for build system compatibility"/> |
| |
| <target name="update" depends="init" description="Downloads binaries from an update center"> |
| <subant-junit target="update" failonerror="true"> |
| <buildpath path="${modules.sorted}"/> |
| </subant-junit> |
| |
| <antcall target="finish-build"/> |
| </target> |
| |
| <!-- build NBMs for selected modules --> |
| <target name="build-nbms" depends="init,download-selected-extbins" description="Build all NBMs, all modules have to be built before proceed"> |
| <mkdir dir="nbms" /> |
| <property name="base.nbm.target.dir" location="nbms" /> |
| <property name="nbms.fail.on.error" value="true"/> |
| <subant-junit target="nbm" failonerror="${nbms.fail.on.error}" report="${nb.build.dir}/build-nbms.xml" inheritall="false"> |
| <buildpath path="${modules.sorted}"/> |
| <property name="base.nbm.target.dir" value="${base.nbm.target.dir}"/> |
| <property name="nbm.always.create" value="true" /> |
| </subant-junit> |
| </target> |
| |
| <target name="build-nonsigned-nbms" depends="init,download-selected-extbins" description="Build all NBMs, all modules have to be built before proceed"> |
| <mkdir dir="nbms" /> |
| <property name="base.nbm.target.dir" location="nbms" /> |
| <property name="nbms.fail.on.error" value="true"/> |
| <subant-junit target="nbm-nosignature" failonerror="${nbms.fail.on.error}" report="${nb.build.dir}/build-nbms.xml" inheritall="false"> |
| <buildpath path="${modules.sorted}"/> |
| <property name="base.nbm.target.dir" value="${base.nbm.target.dir}"/> |
| </subant-junit> |
| </target> |
| |
| <target name="fix-dependencies" depends="init"> |
| <pathconvert property="modules.fullpath" > |
| <path> |
| <dirset dir="${nb_all}" includes="${allmodules}" /> |
| </path> |
| <mapper type="identity" /> |
| </pathconvert> |
| |
| <sortsuitemodules unsortedmodules="${modules.fullpath}" sortedmodulesproperty="modules.sorted"/> |
| |
| <subant-junit target="fix-dependencies" failonerror="true"> |
| <buildpath path="${modules.sorted}"/> |
| </subant-junit> |
| </target> |
| |
| <property name="jnlp.signjar.keystore" location="${nb.build.dir}/default.keystore" /> |
| <available property="jnlp.signjar.keystore.exists" file="${jnlp.signjar.keystore}" /> |
| <target name="jnlp-generate-keystore" depends="init" unless="jnlp.signjar.keystore.exists" > |
| <property name="jnlp.signjar.alias" value="jnlp" /> |
| <property name="jnlp.signjar.password" value="netbeans" /> |
| <property name="jnlp.signjar.vendor" value="CN=NetBeans, OU=NetBeans, O=netbeans.org, C=US" /> |
| |
| <mkdir dir="${jnlp.signjar.keystore}/../" /> |
| <echo message="Going to create default keystore in ${jnlp.signjar.keystore}" /> |
| <genkey |
| alias="${jnlp.signjar.alias}" |
| keystore="${jnlp.signjar.keystore}" |
| storepass="${jnlp.signjar.password}" |
| dname="${jnlp.signjar.vendor}" |
| /> |
| </target> |
| |
| <target name="build-jnlp" depends="init,jnlp-generate-keystore" description="Create a JNLP distribution."> |
| <fail message="Please build using Ant 1.8.4 or higher."> |
| <condition> |
| <not> |
| <antversion atleast="1.8.4"/> |
| </not> |
| </condition> |
| </fail> |
| <property name="jnlp.dest.dir" location="${nb.build.dir}/jnlp" /> |
| <mkdir dir="${jnlp.dest.dir}" /> |
| <makeurl property="jnlp.codebase" file="${jnlp.dest.dir}"/> <!-- fallback value unless otherwise configured --> |
| <property name="jnlp.fail.on.error" value="true"/> |
| <pathconvert property="jnlp.modules.fullpath"> |
| <path> |
| <dirset dir="${nb_all}" includes="${config.jnlp.stable}"/> |
| </path> |
| <mapper type="identity"/> |
| </pathconvert> |
| <sortsuitemodules unsortedmodules="${jnlp.modules.fullpath}" sortedmodulesproperty="jnlp.modules.sorted"/> |
| <subant-junit target="jnlp" failonerror="${jnlp.fail.on.error}" report="${nb.build.dir}/build-all-jnlp.xml"> |
| <buildpath path="${jnlp.modules.sorted}"/> |
| </subant-junit> |
| <taskdef name="verifyjnlp" classname="org.netbeans.nbbuild.VerifyJNLP" classpath="${nbantext.jar}"/> |
| <verifyjnlp report="${nb.build.dir}/verify-jnlp.xml" failonerror="jnlp.fail.on.error"> |
| <fileset dir="${jnlp.dest.dir}" includes="*.jnlp"/> |
| </verifyjnlp> |
| </target> |
| |
| <target name="build-javadoc" depends="javadoc"/> |
| |
| <target name="javadoc" depends="bootstrap" description="Builds Javadoc for all NetBeans modules with some APIs"> |
| <ant dir="javadoctools" target="build-javadoc"/> |
| </target> |
| |
| <!-- build source zips for selected modules - useful for populating maven repository only--> |
| <target name="build-source-zips" depends="init" description="Builds source zips for maven repository inclusion."> |
| <property name="netbeans.zipped.sources.dir" location="${nb.build.dir}/source-zips" /> |
| |
| <subant-junit target="sources-zip" failonerror="true"> |
| <buildpath path="${modules.sorted}"/> |
| </subant-junit> |
| </target> |
| |
| |
| <target name="check-javahelpbin" depends="init" description="Validate intermodule links in helpsets."> |
| <taskdef name="checkhelpsetsbin" classname="org.netbeans.nbbuild.CheckHelpSetsBin"> |
| <classpath> |
| <pathelement location="${nbantext.jar}"/> |
| <fileset dir="${nb_all}/javahelp/external"> |
| <include name="jh*.jar"/> |
| </fileset> |
| </classpath> |
| </taskdef> |
| <checkhelpsetsbin> |
| <fileset dir="netbeans"> |
| <include name="*/modules/*.jar"/> |
| </fileset> |
| </checkhelpsetsbin> |
| </target> |
| |
| <target name="build-messaging" depends="init"> |
| <echo message="Starting a build for NetBeans (build ${buildnum}, config '${cluster.config}') ..."/> |
| <echo message="Selected modules: ${modules}"/> |
| <echo message="OS: ${os.name} ${os.version} Locale: ${user.language}_${user.region}"/> |
| <echo message="Java: ${nbjdk.home}"/> |
| </target> |
| |
| <!-- Use of nbmerge target has the effect of automatically depending on all-X for every module. --> |
| <!-- It also runs deltree(dir=wherever) and copydir(src=../X/netbeans,dest=wherever) to create the IDE install. --> |
| |
| <target name="build-nozip" depends="init,download-selected-extbins,clean-cluster-flags,build-clusters,create-mandatory-files-for-binary,create-netbeans-import,finish-build,add-junit" description="Build the IDE but do not create a final ZIP file."/> |
| <target name="-check-nb-cluster" depends="init"> |
| <condition property="has.nb.cluster"> |
| <contains string="${nb.clusters.list}" substring="nb.cluster.nb" /> |
| </condition> |
| </target> |
| <target name="finish-build" depends="finish-build-platform,finish-build-nb"/> |
| <target name="finish-build-platform" depends="init,-check-nb-cluster" unless="has.nb.cluster"> |
| <copy file="../platform/o.n.bootstrap/readme/README-bin.txt" tofile="${netbeans.dest.dir}/README.txt" overwrite="true"/> |
| <fixcrlf eol="lf" srcdir="${netbeans.dest.dir}" > |
| <include name="${nb.cluster.platform.dir}/lib/nbexec" /> |
| </fixcrlf> |
| </target> |
| <target name="-shall-build-nb-windows-launchers" depends="init,-check-nb-cluster"> |
| <condition property="shall.build.windows.launchers"> |
| <and> |
| <istrue value="${do.build.windows.launchers}"/> |
| <istrue value="${has.nb.cluster}"/> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="-build-nb-windows-launchers" depends="-shall-build-nb-windows-launchers" if="shall.build.windows.launchers"> |
| <exec executable="make" dir="../nb/ide.launcher/windows"> |
| <arg value="-f"/> |
| <arg value="Makefile.mingw"/> |
| </exec> |
| <copy todir="${netbeans.dest.dir}/bin" overwrite="true"> |
| <fileset dir="../nb/ide.launcher/windows" includes="netbeans*.exe"/> |
| </copy> |
| </target> |
| |
| <target name="-download-nb-windows-launchers" depends="init,-check-nb-cluster" if="has.nb.cluster" unless="do.build.windows.launchers"> |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> |
| <manifest dir="${nb_all}" includes="nb/ide.launcher/external/binaries-list"/> |
| </downloadbinaries> |
| |
| <mkdir dir="${netbeans.dest.dir}/bin" /> |
| <unzip src="../nb/ide.launcher/external/launchers-10.0.zip" dest="${netbeans.dest.dir}/bin" /> |
| </target> |
| |
| <target name="finish-build-nb" depends="init,-check-nb-cluster, -download-nb-windows-launchers, -build-nb-windows-launchers" if="has.nb.cluster"> |
| <loadproperties srcFile="${clusters.list.file}" /> |
| |
| <mkdir dir="${netbeans.dest.dir}/bin" /> |
| <copy file="../nb/ide.launcher/unix/netbeans" todir="${netbeans.dest.dir}/bin" /> |
| <chmod file="${netbeans.dest.dir}/bin/netbeans" perm="ugo+rx"/> |
| <!-- if anybody knows better place for icons, let me know: jtulach@netbeans.org --> |
| |
| <mkdir dir="${netbeans.dest.dir}/etc" /> |
| <copy file="../nb/ide.launcher/netbeans.conf" todir="${netbeans.dest.dir}/etc" overwrite="true"/> |
| <!-- replace --> |
| <replace file="${netbeans.dest.dir}/etc/netbeans.conf" value="defaultvalue" propertyFile="${nb_all}/nbbuild/build/netbeansrelease.properties"> |
| <replacefilter token="@@metabuild.RawVersion@@" property="metabuild.RawVersion"/> |
| <replacefilter token="@@metabuild.logcli@@" property="metabuild.logcli"/> |
| </replace> |
| <copy file="../nb/ide.launcher/netbeans.clusters" todir="${netbeans.dest.dir}/etc" overwrite="true"/> |
| |
| <mkdir dir="${nb.build.dir}/license-temp" /> |
| <concat destfile="${nb.build.dir}/license-temp/LICENSE.txt"> |
| <filelist dir="${nb_all}/nbbuild" files="license-dialog-stub.txt" /> |
| <filelist dir="${netbeans.dest.dir}" files="LICENSE" /> |
| </concat> |
| |
| <jar destfile="${netbeans.dest.dir}/nb/core/org-netbeans-upgrader.jar" |
| update="true" |
| compress="${build.package.compress}" > |
| <zipfileset dir="${nb.build.dir}/license-temp" prefix="org/netbeans/license" /> |
| </jar> |
| <echo message="${netbeans.dest.dir}/${nb.cluster.platform.dir}/lib/nbexec" /> |
| <fixcrlf eol="lf" srcdir="${netbeans.dest.dir}" > |
| <include name="etc/netbeans.conf" /> |
| <include name="etc/netbeans.clusters" /> |
| <include name="bin/netbeans" /> |
| <include name="${nb.cluster.platform.dir}/lib/nbexec" /> |
| </fixcrlf> |
| <mkdir dir="${nb.build.dir}"/> |
| <hgid property="hg.id" file=".."/> |
| <echo file="${nb.build.dir}/build_info">NetBeans dev build |
| ------------------ |
| Number: ${buildnumber} |
| Date: ${buildday} |
| Branding: |
| Branch: trunk |
| Tag: |
| Hg ID: ${hg.id} |
| </echo> |
| <mkdir dir="${netbeans.dest.dir}/${nb.cluster.nb.dir}"/> |
| <copy file="${nb.build.dir}/build_info" tofile="${netbeans.dest.dir}/${nb.cluster.nb.dir}/build_info" failonerror="true"/> |
| </target> |
| |
| <target name="add-junit" if="add.junit" description="Add the JUnit plugin to the build (if -Dadd.junit=true)."> |
| <ant dir="../libs.junit4" inheritall="false"> |
| <property name="cluster" location="${netbeans.dest.dir}/${nb.cluster.platform.dir}"/> |
| </ant> |
| <ant dir="../junitlib" inheritall="false"> |
| <property name="cluster" location="${netbeans.dest.dir}/${nb.cluster.java.dir}"/> |
| <property name="nb.cluster.platform" value="libs.junit4"/> |
| <property name="nb.cluster.stableuc" value=""/> |
| <property name="nb.cluster.experimental" value=""/> |
| <property name="do.not.recurse" value="true"/> |
| </ant> |
| </target> |
| <target name="clean-junit"> |
| <delete dir="../libs.junit4/build" verbose="true"/> |
| <delete dir="../junitlib/build" verbose="true"/> |
| <delete verbose="true"> |
| <fileset dir="${netbeans.dest.dir}"> |
| <include name="*/config/Modules/org-netbeans-libs-junit4.xml"/> |
| <include name="*/config/Modules/org-netbeans-modules-junitlib.xml"/> |
| <include name="*/modules/org-netbeans-libs-junit4.jar"/> |
| <include name="*/modules/org-netbeans-modules-junitlib.jar"/> |
| <include name="*/update_tracking/org-netbeans-libs-junit4.xml"/> |
| <include name="*/update_tracking/org-netbeans-modules-junitlib.xml"/> |
| <include name="*/modules/ext/junit*"/> |
| <include name="*/docs/junit*"/> |
| </fileset> |
| </delete> |
| </target> |
| <target name="build" depends="build-nozip" |
| description="Create a complete build including a ZIP distribution (but do not try it)."> |
| <delete file="NetBeans-${buildnum}.zip"/> |
| <delete file="NetBeans-${buildnum}-build-extra-data.zip"/> |
| <delete file="NetBeans-${buildnum}-javadoc-web.zip"/> <!-- XXX why? --> |
| <delete file="NetBeans-${buildnum}-javadoc.zip"/> <!-- XXX why? --> |
| |
| <antcall target="zip-cluster-config" inheritall="true"/> |
| </target> |
| |
| <target name="delete-and-merge" depends="merge-delete,merge" /> |
| |
| <target name="merge-delete" depends="init"> |
| <delete dir="${netbeans.dest}" /> |
| </target> |
| |
| <target name="merge" depends="build-messaging"> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <nbmerge failonerror="${stop.when.broken.modules}" |
| dest="${netbeans.dest}" |
| topdir=".." |
| fixedmodules="${fixedmodules}" |
| modules="${modules}" |
| builtmodulesproperty="${built.modules.property}" |
| targetprefix="all-" |
| mergedependentmodules="${merge.dependent.modules}" > |
| </nbmerge> |
| </target> |
| |
| <target name="build-basic" description="Build the NetBeans Basic cluster."> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <ant dir="." target="build" inheritAll="false"> |
| <property name="cluster.config" value="basic"/> |
| <property name="permit.jdk9.builds" value="true"/> |
| </ant> |
| </target> |
| |
| <target name="test-basic" description="Test the NetBeans Basic cluster."> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <ant dir="." target="test" inheritAll="false"> |
| <property name="cluster.config" value="basic"/> |
| <property name="test.type" value="test-unit"/> |
| <property name="test-unit-sys-prop.ignore.random.failures" value="true"/> |
| <property name="permit.jdk9.builds" value="true"/> |
| <property name="vanilla.javac.exists" value="true"/> |
| </ant> |
| </target> |
| |
| <target name="-build-platform" depends="init"> |
| <delete file="${netbeans.dest.dir}/nb.cluster.platform.built"/> |
| <delete file="${netbeans.dest.dir}/nb.cluster.harness.built"/> |
| <run-depend-build clusters-to-build="nb.cluster.platform,nb.cluster.harness"/> |
| </target> |
| |
| <target name="build-platform" description="Build the NetBeans Platform (platform and harness clusters)."> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <ant dir="." target="-build-platform" inheritAll="false"> |
| <property name="cluster.config" value="platform"/> |
| <property name="permit.jdk9.builds" value="true"/> |
| <property name="vanilla.javac.exists" value="true"/> |
| </ant> |
| </target> |
| |
| <target name="test-platform" description="Test the NetBeans Platform modules."> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <ant dir="." target="test" inheritAll="false"> |
| <property name="cluster.config" value="platform"/> |
| <property name="test.type" value="test-unit"/> |
| <property name="test-unit-sys-prop.ignore.random.failures" value="true"/> |
| <property name="permit.jdk9.builds" value="true"/> |
| <property name="vanilla.javac.exists" value="true"/> |
| </ant> |
| </target> |
| |
| <target name="build-cluster" depends="init"> |
| <run-depend-build clusters-to-build="${cluster-name}"/> |
| </target> |
| |
| <macrodef name="run-depend-build"> |
| <attribute name="clusters-to-build"/> |
| <sequential> |
| <repeat target="build-one-cluster" name="one.cluster.name" values="@{clusters-to-build}" /> |
| </sequential> |
| </macrodef> |
| |
| <target name="build-clusters" depends="init"> |
| <run-depend-build clusters-to-build="${nb.clusters.list}"/> |
| </target> |
| |
| <target name="build-one-cluster-dependencies-check"> |
| <condition property="${one.cluster.name}-hasNoDependencies"> |
| <equals arg1="${one.cluster.dependencies}" arg2="" trim="true"/> |
| </condition> |
| <resolve name="test.prop" value="${one.cluster.name}-hasNoDependencies"/> |
| </target> |
| |
| <target name="build-one-cluster-dependencies" |
| depends="build-one-cluster-dependencies-check" |
| unless="${one.cluster.name}-hasNoDependencies"> |
| <run-depend-build clusters-to-build="${one.cluster.dependencies}"/> |
| </target> |
| |
| <target name="build-one-cluster-check"> |
| <condition property="${one.cluster.name}-is-built"> |
| <available file="${netbeans.dest.dir}/${one.cluster.name}.built"/> |
| </condition> |
| <resolve name="test1.prop" value="${one.cluster.name}-is-built"/> |
| </target> |
| |
| <target name="build-one-cluster" unless="${one.cluster.name}-is-built" depends="build-one-cluster-check"> |
| <echo message="Building ${one.cluster.name} modules"/> |
| <resolve name="one-cluster-modules" value="${one.cluster.name}"/> |
| <resolve name="one-cluster-dependencies" value="${one.cluster.name}.depends"/> |
| <echo>${one-cluster-modules}</echo> |
| <echo>Dependencies: ${one-cluster-dependencies}</echo> |
| <insert-module-all-targets/> <!-- we are in a subproject, so need to reinsert the targets... XXX <antcall> and thus <repeat> apparently reparses the Ant script from disk! --> |
| <antcall target="build-one-cluster-dependencies" inheritAll="false"> |
| <param name="one.cluster.dependencies" value="${one-cluster-dependencies}"/> |
| <param name="one.cluster.name" value="${one.cluster.name}"/> |
| <param name="ext.binaries.downloaded" value="true"/> |
| </antcall> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <nbmerge failonerror="${stop.when.broken.modules}" |
| dest="${netbeans.dest.dir}" |
| topdir="${nb_all}" |
| fixedmodules="${one-cluster-modules}" |
| builtmodulesproperty="${built.modules.property}" |
| targetprefix="all-" |
| mergedependentmodules="false"> |
| </nbmerge> |
| <touch file="${netbeans.dest.dir}/${one.cluster.name}.built"/> |
| </target> |
| |
| <target name="zip-cluster-config" depends="init"> |
| <property name="zip.dir" location="."/> |
| <mkdir dir="${zip.dir}"/> |
| <property name="zip.name" location="${zip.dir}/NetBeans-${buildnum}-${cluster.config}.zip"/> |
| <resolvelist name="nb.clusters.dirs" list="${nb.clusters.list}"> |
| <mapper type="glob" from="*" to="*.dir"/> |
| </resolvelist> |
| <pathconvert property="nb.clusters.includes" pathsep=","> |
| <dirset dir="${netbeans.dest.dir}" includes="${nb.clusters.dirs},etc,bin"/> |
| <mapper type="regexp" from=".*/([^/\\]*)" to="\1/"/> |
| </pathconvert> |
| <taskdef name="find-executables" classname="org.netbeans.nbbuild.FindExecutables" classpath="${nbantext.jar}"/> |
| <find-executables allmodules="${allmodules}" exeincludeproperty="nb.clusters.exe.includes"/> |
| <!-- package the zip file --> |
| <echo>${netbeans.dest.dir}</echo> |
| <zip destfile="${zip.name}" update="true" duplicate="preserve"> |
| <zipfileset dir="${netbeans.dest.dir}" filemode="755" prefix="${netbeans.dest}" |
| includes="bin/netbeans,${nb.clusters.exe.includes}" |
| /> |
| <zipfileset |
| dir="${netbeans.dest.dir}" prefix="${netbeans.dest}" |
| includes="${nb.clusters.includes}" excludes="${nb-extra-files}" |
| /> |
| <zipfileset |
| dir="${netbeans.dest.dir}" prefix="${netbeans.dest}"> |
| <include name="*.txt"/> |
| <include name="*.css"/> |
| <include name="*.html"/> |
| <include name="DEPENDENCIES"/> |
| <include name="LICENSE"/> |
| <include name="NOTICE"/> |
| <include name="licenses/**"/> |
| </zipfileset> |
| </zip> |
| </target> |
| |
| <target name="build-nozip-ml" depends="init-module-list" description="Build the Multilanguage IDE but do not create a final ZIP file."> |
| <subant target="netbeans-ml" buildpath="${modules.fullpath}"> |
| <property name="netbeans.dest.dir" value="${netbeans.dest.dir}"/> |
| </subant> |
| </target> |
| |
| <target name="build-zip-ml" depends="bootstrap,set-buildnumber,check-locales-set,build-nozip-ml" |
| description="Create a compleate multilanguage build including a ZIP distributions"> |
| <fail message="Property locales must be set to reasonable value" unless="locales.is.set"/> |
| <echo message="nb.clusters.list is ${nb.clusters.list}"/> |
| <taskdef name="repeat" classname="org.netbeans.nbbuild.Repeat" |
| classpath="${nbantext.jar}"/> |
| <property name="buildnum" value="dev-${buildnumber}"/> |
| <repeat target="pack-one-cluster-ml" name="one.cluster.name.ml" values="${nb.clusters.list}"/> |
| </target> |
| |
| <target name="pack-one-cluster-ml" if="one.cluster.name.ml"> |
| <resolve name="one.cluster.dir.ml.pre" value="${one.cluster.name.ml}.dir"/> |
| <pathconvert property="one.cluster.dir.ml" setonempty="false"> |
| <path path="${one.cluster.dir.ml.pre}"/> |
| <chainedmapper> |
| <filtermapper> |
| <replacestring from="," to="_"/> |
| <replacestring from="-" to="_"/> |
| <replacestring from="." to="_"/> |
| </filtermapper> |
| <flattenmapper/> |
| </chainedmapper> |
| </pathconvert> |
| <echo message="one.cluster.name.ml is ${one.cluster.name.ml}" level="verbose"/> |
| <echo message="one.cluster.dir.ml is ${one.cluster.dir.ml}" level="verbose"/> |
| <echo message="one.cluster.dir.ml.pre is ${one.cluster.dir.ml.pre}" level="verbose"/> |
| <mkdir dir="${nb.build.dir}/ml"/> |
| <delete file="${nb.build.dir}/ml/NetBeans-${one.cluster.dir.ml}-${buildnum}.zip"/> |
| <repeat target="pack-one-locale-for-cluster" name="one.locale" values="${locales}"/> |
| </target> |
| |
| <target name="pack-one-locale-for-cluster" if="one.locale"> |
| <echo message="cluster-locale is ${one.cluster.dir.ml}-${one.locale}" level="verbose"/> |
| <zip destfile="${nb.build.dir}/ml/NetBeans-${one.cluster.dir.ml}-${buildnum}.zip" update="true" duplicate="preserve"> |
| <zipfileset dir="${netbeans.dest.dir}/${one.cluster.dir.ml.pre}" prefix="${netbeans.dest}"> |
| <include name="**/locale/*_${one.locale}.*"/> |
| </zipfileset> |
| </zip> |
| </target> |
| |
| <target name="check-locales-set"> |
| <condition property="locales.is.set" value="true"> |
| <and> |
| <isset property="locales"/> |
| <length string="${locales}" when="ge" length="2" trim="yes"/> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="build-nbms-ml" depends="bootstrap,set-buildnumber,init-tasks"> |
| <taskdef name="repeat" classname="org.netbeans.nbbuild.Repeat" |
| classpath="${nbantext.jar}"/> |
| <property name="buildnum" value="dev-${buildnumber}"/> |
| <mkdir dir="${nb.build.dir}/ml/nbms"/> |
| <property name="netbeans.dest.dir.ml" location="${nb.build.dir}/ml/nbms"/> |
| <delete dir="${nb.build.dir}/ml/nbms"/> |
| <mkdir dir="${nb.build.dir}/ml/nbms"/> |
| <copy todir="${nb.build.dir}/ml/nbms"> |
| <fileset dir="${nb.build.dir}/ml"> |
| <include name="NetBeans-*-${buildnum}.zip"/> |
| </fileset> |
| </copy> |
| <pathconvert property="dlocales" setonempty="false"> |
| <path path="${locales}"/> |
| <chainedmapper> |
| <filtermapper> |
| <replacestring from="," to="_"/> |
| <replacestring from="-" to="_"/> |
| </filtermapper> |
| <flattenmapper/> |
| </chainedmapper> |
| </pathconvert> |
| <tstamp> |
| <format property="spec.version" pattern="yyyy.M.d.kmm" locale="en" /> |
| </tstamp> |
| <echo level="verbose" message="dlocales is ${dlocales}"/> |
| <echo level="verbose" message="locales is ${locales}"/> |
| <echo level="verbose" message="spec.version is ${spec.version}"/> |
| <delete file="${nb.build.dir}/ml/cluster-nbms-ml.properties"/> |
| <repeat target="build-one-nbm-ml" name="one.cluster.name.ml" values="${nb.clusters.list}"/> |
| <antcall target="build-one-nbm-ml" inheritall="false"> |
| <param name="is.kit" value="true"/> |
| <param name="locales" value="${locales}"/> |
| <param name="dlocales" value="${dlocales}"/> |
| <param name="one.cluster.name.ml" value="nb.cluster.nb"/> |
| <param name="nb.cluster.nb" value="${nb.cluster.nb}"/> |
| <param name="nb.clusters.list" value="${nb.clusters.list}"/> |
| <param name="spec.version" value="${spec.version}"/> |
| <param name="netbeans.dest.dir.ml" value="${netbeans.dest.dir.ml}"/> |
| <param name="buildnumber" value="${buildnumber}"/> |
| </antcall> |
| <taskdef name="makeupdatedesc" classname="org.netbeans.nbbuild.MakeUpdateDesc" |
| classpath="${nbantext.jar}"/> |
| <property name="use.license.url.in.catalog" value="true"/> |
| <makeupdatedesc desc="nbms/catalog.xml" distbase="." uselicenseurl="${use.license.url.in.catalog}"> |
| <fileset dir="nbms"> |
| <include name="*.nbm"/> |
| <include name="*.jar"/> |
| </fileset> |
| </makeupdatedesc> |
| </target> |
| |
| <target name="-check-ml-nbm-props"> |
| <condition property="run.ml.nbm.build" value="true"> |
| <and> |
| <isset property="locales"/> |
| <isset property="dlocales"/> |
| <isset property="one.cluster.name.ml"/> |
| <isset property="nb.clusters.list"/> |
| <isset property="spec.version"/> |
| <isset property="netbeans.dest.dir.ml"/> |
| <isset property="buildnumber"/> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="-unpack-cluster-ml-zipfile" unless="is.kit"> |
| <unzip dest="${netbeans.dest.dir.ml}" src="${nb.build.dir}/ml/NetBeans-${cluster.package.dir}-${buildnum}.zip"> |
| <mapper type="glob" from="netbeans/*" to="${one.cluster.dir.ml}/*"/> |
| </unzip> |
| </target> |
| |
| <target name="-create-cluster-ml-nbm-metadata" unless="is.kit"> |
| <echo file="${nb.build.dir}/ml/nbms/tmp/manifest.mf">OpenIDE-Module: ${code.name} |
| OpenIDE-Module-Localizing-Bundle: ${code.name.base.slashes}/Bundle.properties |
| OpenIDE-Module-Specification-Version: ${spec.version} |
| </echo> |
| <echo file="${nb.build.dir}/ml/nbms/classes/${code.name.base.slashes}/Bundle.properties"> |
| OpenIDE-Module-Name=NetBeans 6.0 ${one.cluster.dir.ml} cluster localization (${locales}) |
| OpenIDE-Module-Display-Category=Localization |
| OpenIDE-Module-Short-Description=NetBeans 6.0 ${one.cluster.dir.ml} cluster localization (${locales}) |
| OpenIDE-Module-Long-Description=Delivers ${locales} localization for all modules in ${one.cluster.dir.ml} cluster of NetBeans 6.0 |
| </echo> |
| </target> |
| |
| <target name="-create-kit-ml-nbm-metadata" if="is.kit"> |
| <echo file="${nb.build.dir}/ml/nbms/tmp/manifest.mf">OpenIDE-Module: ${code.name} |
| OpenIDE-Module-Localizing-Bundle: ${code.name.base.slashes}/Bundle.properties |
| OpenIDE-Module-Specification-Version: ${spec.version} |
| OpenIDE-Module-Module-Dependencies: ${kit.deps} |
| </echo> |
| <echo file="${nb.build.dir}/ml/nbms/classes/${code.name.base.slashes}/Bundle.properties"> |
| OpenIDE-Module-Name=NetBeans 6.0 ${locales} localization kit |
| OpenIDE-Module-Display-Category=Localization |
| OpenIDE-Module-Short-Description=NetBeans 6.0 ${locales} localization kit |
| OpenIDE-Module-Long-Description=Delivers ${locales} localization of whole NetBeans 6.0 |
| </echo> |
| </target> |
| |
| <target name="build-one-nbm-ml" depends="init-tasks,-check-ml-nbm-props" if="run.ml.nbm.build"> |
| <property file="${nb.build.dir}/ml/cluster-nbms-ml.properties"/> |
| <echo level="verbose" message="kit.deps is ${kit.deps}"/> |
| <echo level="verbose" message="locales is ${locales}"/> |
| <echo level="verbose" message="dlocales is ${dlocales}"/> |
| <echo level="verbose" message="nb.clusters.list is ${nb.clusters.list}"/> |
| <echo level="verbose" message="netbeans.dest.dir.ml is ${netbeans.dest.dir.ml}"/> |
| <echo level="verbose" message="spec.version is ${spec.version}"/> |
| |
| <resolve name="one.cluster.dir.ml" value="${one.cluster.name.ml}.dir"/> |
| <pathconvert property="cluster.package.dir" setonempty="false"> |
| <path path="${one.cluster.dir.ml}"/> |
| <chainedmapper> |
| <filtermapper> |
| <replacestring from="," to="_"/> |
| <replacestring from="-" to="_"/> |
| <replacestring from="." to="_"/> |
| </filtermapper> |
| <flattenmapper/> |
| </chainedmapper> |
| </pathconvert> |
| <delete dir="${nb.build.dir}/ml/nbms"/> |
| <delete dir="${netbeans.dest.dir.ml}"/> |
| <mkdir dir="${netbeans.dest.dir.ml}"/> |
| <antcall target="-unpack-cluster-ml-zipfile"/> |
| <property name="cluster" location="${netbeans.dest.dir.ml}/${one.cluster.dir.ml}"/> |
| <condition property="code.name.base" value="org.netbeans.localization.${cluster.package.dir}.${dlocales}"> |
| <not> |
| <isset property="is.kit"/> |
| </not> |
| </condition> |
| <condition property="code.name.base" value="org.netbeans.localization.kit.${cluster.package.dir}.${dlocales}"> |
| <isset property="is.kit"/> |
| </condition> |
| |
| <pathconvert property="code.name.base.slashes" setonempty="false"> |
| <path path="${code.name.base}"/> |
| <chainedmapper> |
| <flattenmapper/> |
| <filtermapper> |
| <replacestring from="." to="/"/> |
| </filtermapper> |
| </chainedmapper> |
| </pathconvert> |
| <pathconvert property="code.name.base.dashes" setonempty="false"> |
| <path path="${code.name.base}"/> |
| <chainedmapper> |
| <flattenmapper/> |
| <filtermapper> |
| <replacestring from="." to="-"/> |
| </filtermapper> |
| </chainedmapper> |
| </pathconvert> |
| <property name="public.packages" value="${code.name.base}.*"/> |
| <property name="code.name" value="${code.name.base}/1"/> |
| <mkdir dir="${nb.build.dir}/ml/nbms/classes/${code.name.base.slashes}"/> |
| <mkdir dir="${nb.build.dir}/ml/nbms/tmp"/> |
| <antcall target="-create-cluster-ml-nbm-metadata"/> |
| <antcall target="-create-kit-ml-nbm-metadata"/> |
| <property name="is.autoload" value="false"/> |
| <property name="is.eager" value="false"/> |
| <condition property="module.jar.dir" value="modules"> |
| <!-- set module.jar.dir property only when building kit NBM - leads to |
| AutoUpdate-Show-In-Client manifest attribute is set to true --> |
| <isset property="is.kit"/> |
| </condition> |
| <property name="module.jar" value="modules/${code.name.base.dashes}.jar"/> |
| <mkdir dir="${cluster}/modules"/> |
| <jarwithmoduleattributes jarfile="${cluster}/${module.jar}" |
| compress="${build.package.compress}" |
| index="${build.package.index}" |
| manifest="${nb.build.dir}/ml/nbms/tmp/manifest.mf"> |
| <fileset dir="${nb.build.dir}/ml/nbms/classes"/> |
| </jarwithmoduleattributes> |
| <createmodulexml xmldir="${cluster}/config/Modules"> |
| <enabled dir="${cluster}"> |
| <include name="${module.jar}"/> |
| </enabled> |
| </createmodulexml> |
| <patternset id="module.files"> |
| <!-- include name="${module.jar}"/ --> |
| <include name="**/*.jar"/> |
| <include name="config/Modules/${code.name.base.dashes}.xml"/> |
| </patternset> |
| |
| <property name="module.files.toString" refid="module.files"/> |
| <echo level="verbose">Basic matching module files (${code.name.base.dashes}): ${module.files.toString}</echo> |
| <genlist outputfiledir="${cluster}" module="${module.jar}"> |
| <fileset dir="${cluster}"> |
| <patternset refid="module.files"/> |
| </fileset> |
| </genlist> |
| <property name="license.file.override" location="${nb.build.dir}/ml/nbms/license"/> |
| <property name="extra.license.files" value=""/> |
| <taskdef name="releasefileslicense" classname="org.netbeans.nbbuild.extlibs.ReleaseFilesLicense" classpath="${nbantext.jar}"/> |
| <releasefileslicense license="${license.file.override}" standardlicense="${nb_all}/nbbuild/standard-nbm-license.txt" extralicensefiles="${extra.license.files}"/> |
| <taskdef name="makenbm" classname="org.netbeans.nbbuild.MakeNBM" classpath="${nbantext.jar}"/> |
| <property name="nbm_alias" value="nb_ide"/> |
| <makenbm file="${nb.build.dir}/ml/${code.name.base.dashes}.nbm" |
| productdir="${cluster}" |
| module="${module.jar}" |
| homepage="http://translatedfiles.netbeans.org/" |
| distribution="http://translatedfiles.netbeans.org/" |
| needsrestart="true" |
| global="true" |
| targetcluster="${one.cluster.dir.ml}" |
| releasedate="" |
| moduleauthor=""> |
| <license file="${license.file.override}"/> |
| <signature keystore="${keystore}" storepass="${storepass}" alias="${nbm_alias}"/> |
| </makenbm> |
| <move todir="nbms" file="${nb.build.dir}/ml/${code.name.base.dashes}.nbm"/> |
| <property file="${nb.build.dir}/ml/cluster-nbms-ml.properties"/> |
| <condition property="new.kit.deps" value="${code.name} > ${spec.version}"> |
| <and> |
| <not> |
| <isset property="kit.deps"/> |
| </not> |
| <not> |
| <isset property="is.kit"/> |
| </not> |
| </and> |
| </condition> |
| <condition property="new.kit.deps" value="${kit.deps},${code.name} > ${spec.version}"> |
| <and> |
| <isset property="kit.deps"/> |
| <not> |
| <isset property="is.kit"/> |
| </not> |
| </and> |
| </condition> |
| <condition property="new.kit.deps" value="${kit.deps}"> |
| <isset property="is.kit"/> |
| </condition> |
| <propertyfile file="${nb.build.dir}/ml/cluster-nbms-ml.properties"> |
| <entry key="kit.deps" value="${new.kit.deps}"/> |
| </propertyfile> |
| </target> |
| |
| <target name="create-rpms-proto"> |
| <mkdir dir="${nb.build.dir}/rpms"/> |
| <repeat target="create-one-rpm-proto" name="one.cluster.name" values="${clusters.list}" /> |
| </target> |
| |
| <target name="create-one-rpm-proto"> |
| <taskdef name="setcluster" classname="org.netbeans.nbbuild.SetCluster" classpath="${nbantext.jar}"/> |
| <loadproperties srcFile="cluster.properties" /> |
| <loadproperties srcFile="cluster-description.properties" /> |
| <setcluster cluster="${one.cluster.name}" name="one.cluster.dir" /> |
| <mkdir dir="${nb.build.dir}/rpms"/> |
| |
| <resolve name="pkg.name" value="${one.cluster.name}.pkg.name"/> |
| <resolve name="pkg.version" value="${one.cluster.name}.pkg.version"/> |
| <resolve name="pkg.desc" value="${one.cluster.name}.pkg.desc"/> |
| <resolve name="pkg.vendor" value="${one.cluster.name}.pkg.vendor"/> |
| <resolve name="pkg.email" value="${one.cluster.name}.pkg.email"/> |
| <resolve name="pkg.rpm.name" value="${one.cluster.name}.pkg.rpm.name"/> |
| <resolve name="pkg.rpm.requires" value="${one.cluster.name}.pkg.rpm.requires"/> |
| <resolve name="pkg.rpm.group" value="${one.cluster.name}.pkg.rpm.group"/> |
| <resolve name="pkg.rpm.url" value="${one.cluster.name}.pkg.rpm.url"/> |
| <resolve name="pkg.rpm.copyright" value="${one.cluster.name}.pkg.rpm.copyright"/> |
| <resolve name="pkg.rpm.map" value="${one.cluster.name}.pkg.rpm.map"/> |
| <resolve name="pkg.rpm.prefix" value="${one.cluster.name}.pkg.rpm.prefix"/> |
| |
| <echo file="${nb.build.dir}/rpms/${pkg.rpm.name}.spec"> |
| %define global_product_version ${pkg.version} |
| %define global_product_release 00 |
| %define _prefix ${pkg.rpm.prefix} |
| Version: %{global_product_version} |
| Release: %{global_product_release} |
| Group: ${pkg.rpm.group} |
| Copyright: ${pkg.rpm.copyright} |
| Vendor: ${pkg.vendor} |
| URL: ${pkg.rpm.url} |
| Prefix: %_prefix |
| AutoReqProv: no |
| Name: ${pkg.rpm.name} |
| Summary: ${pkg.name} |
| %description |
| ${pkg.desc} |
| |
| %files |
| |
| %erpm_map ${pkg.rpm.map} nb_destdir |
| |
| %dir ${pkg.rpm.map} |
| |
| ${pkg.rpm.map}/${one.cluster.dir}</echo> |
| </target> |
| |
| <target name="create-svr4s-proto"> |
| <mkdir dir="${nb.build.dir}/rpms"/> |
| <repeat target="create-one-svr4-proto" name="one.cluster.name" values="${clusters.list}" /> |
| </target> |
| |
| <target name="create-one-svr4-proto"> |
| <taskdef name="setcluster" classname="org.netbeans.nbbuild.SetCluster" classpath="${nbantext.jar}"/> |
| <loadproperties srcFile="cluster.properties" /> |
| <loadproperties srcFile="cluster-description.properties" /> |
| <setcluster cluster="${one.cluster.name}" name="one.cluster.dir" /> |
| <mkdir dir="${nb.build.dir}/svr4s"/> |
| |
| <resolve name="pkg.name" value="${one.cluster.name}.pkg.name"/> |
| <resolve name="pkg.version" value="${one.cluster.name}.pkg.version"/> |
| <resolve name="pkg.desc" value="${one.cluster.name}.pkg.desc"/> |
| <resolve name="pkg.vendor" value="${one.cluster.name}.pkg.vendor"/> |
| <resolve name="pkg.email" value="${one.cluster.name}.pkg.email"/> |
| <resolve name="pkg.svr4.pkg" value="${one.cluster.name}.pkg.svr4.pkg"/> |
| <resolve name="pkg.svr4.maxinst" value="${one.cluster.name}.pkg.svr4.maxinst"/> |
| <resolve name="pkg.svr4.sunw_pkgvers" value="${one.cluster.name}.pkg.svr4.sunw_pkgvers"/> |
| <resolve name="pkg.svr4.hotline" value="${one.cluster.name}.pkg.svr4.hotline"/> |
| <resolve name="pkg.svr4.classes" value="${one.cluster.name}.pkg.svr4.classes"/> |
| <resolve name="pkg.svr4.basedir" value="${one.cluster.name}.pkg.svr4.basedir"/> |
| <resolve name="pkg.svr4.pkginst" value="${one.cluster.name}.pkg.svr4.pkginst"/> |
| <resolve name="pkg.svr4.category" value="${one.cluster.name}.pkg.svr4.category"/> |
| <echo file="${nb.build.dir}/svr4s/${pkg.svr4.pkg}.spec"> |
| PKG=${pkg.svr4.pkg} |
| NAME=${pkg.name} |
| ARCH=sparc |
| VERSION=${pkg.version} |
| MAXINST=${pkg.svr4.maxinst} |
| CATEGORY=${pkg.svr4.category} |
| SUNW_PKGVERS=${pkg.svr4.sunw_pkgvers} |
| DESC=${pkg.desc} |
| VENDOR=${pkg.vendor} |
| HOTLINE=${pkg.svr4.hotline} |
| EMAIL=${pkg.email} |
| CLASSES=${pkg.svr4.classes} |
| BASEDIR=${pkg.svr4.basedir} |
| PKGINST=${pkg.svr4.pkginst}</echo> |
| </target> |
| |
| <target name="-testuserdir-delete-init" depends="-load-build-properties"> |
| <property name="test.user.dir.lock" location="${test.user.dir}/lock"/> |
| <available property="app.running" file="${test.user.dir.lock}"/> |
| </target> |
| <target name="-testuserdir-delete-ok" depends="-testuserdir-delete-init" unless="app.running"> |
| <delete dir="${test.user.dir}"/> |
| </target> |
| <target name="-testuserdir-delete-fail" depends="-testuserdir-delete-init" if="app.running"> |
| <!-- #66799: best to warn about this condition... --> |
| <fail>Will not delete ${test.user.dir} because ${test.user.dir.lock} still exists; kill any running process and delete lock file if necessary</fail> |
| </target> |
| <target name="testuserdir-delete" depends="-testuserdir-delete-ok,-testuserdir-delete-fail" description="Clean temporary testing user directory."/> |
| |
| <target name="check-for-build" > |
| <available property="have-build" file="${netbeans.dest.dir}/bin/netbeans"/> |
| </target> |
| <target name="maybe-build-nozip" depends="check-for-build" unless="have-build"> |
| <ant dir="${basedir}" target="build-nozip"/> |
| </target> |
| |
| <target name="tryme-setup-debug-args" if="debug.port" > |
| <property name="debug.pause" value="y" /> |
| <property name="debug.server" value="y" /> |
| <property name="tryme.debug.args" value="-J-agentlib:jdwp=transport=dt_socket,suspend=${debug.pause},server=${debug.server},address=${debug.port}" /> |
| </target> |
| |
| <target name="tryme-debug" depends="-jdk-presetdef-nbjpdastart" description="Start IDE in debugger. May only be called from within IDE."> |
| <echo>Searching for JARs in ${netbeans.dest.dir}, this may take a moment...</echo> |
| <nbjpdastart name="NetBeans" addressproperty="debug.port" transport="dt_socket"> |
| <classpath> |
| <fileset dir="${netbeans.dest.dir}"> |
| <include name="**/*.jar"/> |
| </fileset> |
| </classpath> |
| </nbjpdastart> |
| <property name="debug.server" value="n"/> |
| <antcall target="tryme"/> |
| </target> |
| |
| <target name="-profile-check" if="netbeans.home"> |
| <condition property="profiler.configured"> |
| <or> |
| <contains string="${run.args.ide}" substring="-agentpath:" casesensitive="true"/> |
| <contains string="${run.args.ide}" substring="-javaagent:" casesensitive="true"/> |
| </or> |
| </condition> |
| </target> |
| |
| <target name="-tryme-profile-pre72" depends="-jdk-presetdef-nbprofiledirect" if="profiler.info.jvmargs.agent" description="Start IDE in profiler (pre72 compatibility mode). May only be called from within IDE."> |
| <property name="profiler.roots.path" value="profiler.roots.all" /> |
| <fileset id="profiler.roots.all" dir="${netbeans.dest.dir}"> |
| <include name="**/*.jar"/> |
| </fileset> |
| <nbprofiledirect |
| jvmargsprefix="-J" |
| jvmargsproperty="profiler.jvmargs" |
| mainclass="org.netbeans.Main" |
| > |
| <classpath> |
| <fileset dir="${netbeans.dest.dir}"> |
| <include name="**/*.jar"/> |
| </fileset> |
| </classpath> |
| <rootspath> |
| <fileset refid="${profiler.roots.path}" /> |
| </rootspath> |
| </nbprofiledirect> |
| </target> |
| |
| <target name="tryme-profile" depends="-profile-check,-tryme-profile-pre72" if="profiler.configured" unless="profiler.info.jvmargs.agent" description="Start IDE in profiler. May only be called from within IDE."> |
| <startprofiler/> |
| <property name="tryme.debug.args" value="-J-Dorg.osgi.framework.bootdelegation=org.netbeans.lib.profiler,org.netbeans.lib.profiler.*" /> |
| <antcall target="tryme"/> |
| </target> |
| |
| <target name="tryme" depends="-load-build-properties,tryme-setup-debug-args,-jdk-init" |
| description="Try running the IDE interactively. |
| It is possible to use -Ddebug.port=3234 -Ddebug.pause=y to start the system in debug mode" |
| > |
| <script language="javascript"> |
| v = '' |
| i = new Packages.java.util.TreeMap(project.getProperties()).entrySet().iterator() |
| while (i.hasNext()) { |
| e = i.next() |
| if (e.getKey().startsWith('tryme.arg.')) { |
| v += ' ' + e.getValue() |
| } |
| } |
| project.setNewProperty('tryme.args', v) |
| </script> |
| <property name="tryme.jdkhome" value="${nbjdk.home}"/> |
| <property name="tryme.debug.args" value="" /> |
| <property environment="env"/> |
| <condition property="run.env.display" value="${env.NBDISPLAY}" else="${env.DISPLAY}"> |
| <isset property="env.NBDISPLAY"/> |
| </condition> |
| |
| <!-- architecture of jvm on which app will run --> |
| <condition property="jvm.arch.string" value="64" else=""> |
| <available file="${nbjdk.home}\jre\lib\amd64" /> |
| </condition> |
| |
| <condition property="tryme.launcher.prefix" value="${netbeans.dest.dir}/bin/netbeans" else="${netbeans.dest.dir}/platform/lib/nbexec"> |
| <available file="${netbeans.dest.dir}/nb/.lastModified" /> |
| </condition> |
| <property name="run.args.ide" value=""/> |
| <exec osfamily="windows" executable="${tryme.launcher.prefix}${jvm.arch.string}.exe" failonerror="yes" dir="${java.io.tmpdir}"> |
| <arg value="--jdkhome"/> |
| <arg file="${tryme.jdkhome}"/> |
| <arg value="--userdir"/> |
| <arg file="${test.user.dir}"/> |
| <arg line="${tryme.args}"/> |
| <arg line="${tryme.debug.args}" /> |
| <arg line="${run.args.ide}"/> |
| </exec> |
| <exec osfamily="unix" executable="sh" failonerror="yes" dir="${java.io.tmpdir}"> |
| <arg value="${tryme.launcher.prefix}"/> |
| <arg value="--jdkhome"/> |
| <arg file="${tryme.jdkhome}"/> |
| <arg value="--userdir"/> |
| <arg file="${test.user.dir}"/> |
| <arg line="${tryme.args}"/> |
| <arg line="${tryme.debug.args}" /> |
| <arg line="${run.args.ide}"/> |
| <env key="DISPLAY" value="${run.env.display}"/> |
| </exec> |
| </target> |
| |
| <target name="move-ide-nbms" depends="init"> |
| <property name="nbms.source.location" location="nbms"/> |
| <property name="nbms.target.location" location="ide_nbms"/> |
| <mkdir dir="${nbms.target.location}"/> |
| |
| <resolvelist name="nb.clusters.names" list="${clusters.config.full.list}"> |
| <mapper type="glob" from="*" to="*.dir"/> |
| </resolvelist> |
| <echo message="dirs: ${nb.clusters.names}"/> |
| |
| <repeat target="-move-cluster-nbms" name="nb.cluster.name" values="${nb.clusters.names}"/> |
| </target> |
| |
| <target name="-move-cluster-nbms"> |
| <echo message="one cluster: ${nb.cluster.name}"/> |
| <echo message="source: ${nbms.target.location}"/> |
| <move todir="${nbms.target.location}"> |
| <fileset dir="${nbms.source.location}"> |
| <include name="${nb.cluster.name}/"/> |
| </fileset> |
| </move> |
| </target> |
| |
| <target name="all-l10n-kits" depends="l10n-kit"> |
| </target> |
| |
| <target name="l10n-kit" depends="bootstrap,set-buildnumber,init-tasks" description="Builds the L10N kit"> |
| <taskdef name="l10n" classname="org.netbeans.nbbuild.L10nTask" |
| classpath="${nbantext.jar}"/> |
| <property name="l10n.kit" location="${nb.build.dir}/l10n.zip"/> |
| <property name="nbms.location" location="nbms"/> |
| <property name="locales" value=""/> |
| <l10n nbmsdir="${nbms.location}" tmpdir="tmp" patternsFile="l10n.patterns" kitFile="${l10n.kit}" locales="${locales}"/> |
| </target> |
| |
| <target name="hg-l10n-kit"> |
| <property name="l10n.kit" location="${nb.build.dir}/l10n.zip"/> |
| <zip destfile="${l10n.kit}"> |
| <fileset dir="${nb_all}" includesfile="${nb_all}/installer/l10n.list"/> |
| <fileset dir="${nb_all}" includesfile="${nb_all}/nbi/l10n.list"/> |
| <fileset dir="${nb_all}" includesfile="${nb_all}/ide.branding/l10n.list"/> |
| </zip> |
| </target> |
| |
| <target name="clean-untracked-files" depends="bootstrap" description="Removes files from clusters which are not listed as belonging to any NBM."> |
| <taskdef name="ducf" classname="org.netbeans.nbbuild.DeleteUnreferencedClusterFiles" classpath="${nbantext.jar}"/> |
| <ducf report="${nb.build.dir}/ducf.xml"> |
| <clusters dir="${netbeans.dest.dir}"> |
| <include name="*"/> |
| </clusters> |
| <selection excludes="build_info"/> |
| </ducf> |
| </target> |
| |
| <target name="-init-clean"> |
| <property name="nbbuild.warn.missing.autodeps" value="verbose"/> |
| </target> |
| |
| <target name="-cleanall" depends="init-module-list,init-tasks"> |
| <taskdef name="cleanall" classname="org.netbeans.nbbuild.CleanAll" classpath="${nbantext.jar}"/> |
| <cleanall topdir=".." |
| modules="${allmodules}" |
| targetname="clean" |
| resolvedependencies="${resolve.clean.dependencies}" |
| deptargetprefix="all-" |
| failonerror="${stop.when.clean.error}" /> |
| </target> |
| |
| <target name="clean" depends="-init-clean,bootstrap" description="Clean everything possible."> |
| <antcall target="-real-clean"></antcall> |
| </target> |
| |
| <target name="-clean-external"> |
| <subant target="clean"> |
| <fileset dir=".."> |
| <include name="*/external/build.xml"/> |
| <include name="contrib/*/external/build.xml"/> |
| <include name="otherlicenses/*/external/build.xml"/> |
| </fileset> |
| </subant> |
| <taskdef name="downloadbinaries" classname="org.netbeans.nbbuild.extlibs.DownloadBinaries" classpath="${nbantext.jar}"/> |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}" clean="true"> |
| <manifest dir="${nb_all}"> |
| <include name="*/external/binaries-list"/> |
| <include name="contrib/*/external/binaries-list"/> |
| <include name="otherlicenses/*/external/binaries-list"/> |
| </manifest> |
| </downloadbinaries> |
| </target> |
| |
| <target name="-real-clean" depends="-cleanall,localclean,-clean-external"> |
| <echo message="Cleaning old builds..."/> |
| <delete> |
| <fileset dir="."> |
| <include name="NetBeans-*.log"/> |
| <include name="NetBeans-*.zip"/> |
| </fileset> |
| </delete> |
| <echo message="Cleaning scan cache..."/> |
| <delete> |
| <fileset dir="${java.io.tmpdir}" includes="nb-scan-cache-*-standard.ser,nb-scan-cache-*-full.ser"/> |
| </delete> |
| <!-- This step must be last (tries to delete nbantext.jar): --> |
| <delete dir="${nb.build.dir}" quiet="true"/> |
| </target> |
| |
| <target name="clean-cluster-flags" unless="do-not-rebuild-clusters"> |
| <mkdir dir="${netbeans.dest.dir}"/> |
| <delete includeEmptyDirs="true"> |
| <fileset dir="${netbeans.dest.dir}"> |
| <include name="*.built"/> |
| </fileset> |
| </delete> |
| </target> |
| |
| <target name="localclean" depends="clean-cluster-flags"> |
| <delete dir="${test.user.dir}"/> |
| <delete includeEmptyDirs="true"> |
| <fileset dir="${nb.build.dir}" erroronmissingdir="false" defaultexcludes="false"> |
| <exclude name="nbantext.jar"/> |
| </fileset> |
| </delete> |
| <delete file="moduledefs-tmp.properties"/> |
| <delete dir="nbms" /> |
| <delete dir="${netbeans.dest.dir}"/> |
| </target> |
| |
| <target name="rebuild-cluster" depends="init" description="Builds only one cluster with dependencies ; takes e.g. '-Drebuild.cluster.name=nb.cluster.java' as parameter"> |
| <delete file="netbeans/${rebuild.cluster.name}.built" failonerror="false"/> |
| <condition property="rebuild.cluster.name" value="nb.cluster.${name}"> |
| <isset property="name"/> |
| </condition> |
| <fail unless="rebuild.cluster.name" message="You need to specify e.g.: -Dname=java"/> |
| <antcall target="build-one-cluster"> |
| <param name="one.cluster.name" value="${rebuild.cluster.name}"/> |
| </antcall> |
| </target> |
| |
| <target name="-localtest-macrodef"> |
| <macrodef name="localtest"> |
| <element name="test" implicit="true"/> |
| <sequential> |
| <mkdir dir="${nb.build.dir}/test/unit/classes"/> |
| <javac srcdir="test/unit/src" destdir="${nb.build.dir}/test/unit/classes" debug="true" source="1.7"> |
| <classpath path="${test.unit.cp}"/> |
| <compilerarg line="-Xlint -Xlint:-serial"/> |
| </javac> |
| <copy todir="${nb.build.dir}/test/unit/classes"> |
| <fileset dir="test/unit/src" excludes="**/*.java"/> |
| </copy> |
| <mkdir dir="${nb.build.dir}/test/unit/results"/> |
| <property name="junit.vm.args" value=""/> |
| <junit showoutput="true" fork="true" tempdir="${nb.build.dir}/test/unit/results" filtertrace="false" includeantruntime="false"> |
| <test/> |
| <classpath> |
| <pathelement path="${test.unit.cp}"/> |
| <pathelement location="${nb.build.dir}/test/unit/classes"/> |
| </classpath> |
| <sysproperty key="nb_all" file=".."/> |
| <sysproperty key="netbeans.dest.dir.work" file="${netbeans.dest.dir}"/> |
| <sysproperty key="nbjunit.workdir" file="${nb.build.dir}/test/unit/work"/> |
| <syspropertyset> |
| <propertyref prefix="test-unit-sys-prop."/> |
| <mapper type="glob" from="test-unit-sys-prop.*" to="*"/> |
| </syspropertyset> |
| <formatter type="brief" usefile="false"/> |
| <formatter type="xml"/> |
| <jvmarg value="-ea"/> |
| <jvmarg line="${junit.vm.args}"/> |
| </junit> |
| </sequential> |
| </macrodef> |
| </target> |
| <target name="localtest" depends="bootstrap,-localtest-macrodef"> |
| <property name="includes" value="**/*Test.class"/> |
| <localtest> |
| <batchtest todir="${nb.build.dir}/test/unit/results"> |
| <fileset dir="${nb.build.dir}/test/unit/classes" includes="${includes}"/> |
| </batchtest> |
| </localtest> |
| </target> |
| <target name="localtest-single" depends="bootstrap,-localtest-macrodef,-localtest-single-nomethod,-localtest-single-method"/> |
| <target name="-localtest-single-nomethod" unless="method"> |
| <localtest> |
| <test name="${test.class}" todir="${nb.build.dir}/test/unit/results"/> |
| </localtest> |
| </target> |
| <target name="-localtest-single-method" if="method"> |
| <localtest> |
| <test name="${test.class}" methods="${method}" todir="${nb.build.dir}/test/unit/results"/> |
| </localtest> |
| </target> |
| <target name="localtest-single-nb-debug" depends="bootstrap,-jdk-presetdef-nbjpdastart"> |
| <nbjpdastart addressproperty="jpda.address" name="nbbuild" transport="dt_socket"> |
| <classpath> |
| <pathelement path="${test.unit.cp}"/> |
| <pathelement location="${nb.build.dir}/test/unit/classes"/> |
| </classpath> |
| </nbjpdastart> |
| <antcall target="localtest-single"> |
| <param name="junit.vm.args" value="-agentlib:jdwp=transport=dt_socket,address=${jpda.address}"/> |
| </antcall> |
| </target> |
| |
| <target name="clean-cluster" description="Clean only one cluster - takes clean.cluster.name as parameters"> |
| <fail message="specify -Dclean.cluster.name= property" unless="clean.cluster.name"/> |
| <resolve name="modules.to.clean" value="${clean.cluster.name}"/> |
| <antcall target="cleanall" inheritAll="false"> |
| <param name="allmodules" value="${modules.to.clean}"/> |
| </antcall> |
| <delete file="netbeans/${clean.cluster.name}.built" failonerror="false"/> |
| </target> |
| |
| |
| <!-- This section contains properties and targets used to build --> |
| <!-- Solaris packages. --> |
| |
| <property name="solpkg-pkgproto" value="pkgproto"/> |
| <property name="solpkg-pkgmk" value="pkgmk"/> |
| <property name="solpkg-proto-file" value="prototype"/> |
| <property name="solpkg-actual-dir" value="to-be-specified"/> |
| <property name="solpkg-pkg-dir" value="to-be-specified"/> |
| <property name="solpkg-pkg-dest-dir" value="to-be-specified"/> |
| |
| <!-- You can run this target to create the prototype file and create --> |
| <!-- the package, or if you need to modify the prototype file before --> |
| <!-- building the package, you can run the two subtargets --> |
| <!-- separately. --> |
| <target name="solpkg-build" depends="solpkg-pkgproto,solpkg-pkgmk" |
| description="Generate a prototype file and create a Solaris package."/> |
| |
| <!-- This creates the pkg prototype file for a given directory and --> |
| <!-- its files. --> |
| <target name="solpkg-pkgproto" |
| description="Generate a prototype file."> |
| <exec executable="rm" failonerror="yes"> |
| <arg value="-rf"/> |
| <arg value="${solpkg-proto-file}"/> |
| </exec> |
| <exec executable="${solpkg-pkgproto}" output="${solpkg-proto-file}" |
| failonerror="yes"> |
| <arg value="${solpkg-actual-dir}=${solpkg-pkg-dir}"/> |
| </exec> |
| </target> |
| |
| <!-- This creates the Solaris pkg for a given prototype file, pkginfo --> |
| <!-- file, and directory. --> |
| <target name="solpkg-pkgmk" |
| description="Create a Solaris package."> |
| <exec executable="${solpkg-pkgmk}" failonerror="yes"> |
| <arg value="-o"/> |
| <arg value="-f"/> |
| <arg value="${solpkg-proto-file}"/> |
| <arg value="-r"/> |
| <arg value="${solpkg-actual-dir}"/> |
| <arg value="-d"/> |
| <arg value="${solpkg-pkg-dest-dir}"/> |
| </exec> |
| </target> |
| |
| <!-- End of Solaris package section. --> |
| |
| |
| <!-- Localized builds --> |
| <target name="all-dutch" depends="set-dutch-locale,all"/> |
| <target name="all-russian" depends="set-russian-locale,all"/> |
| <target name="all-french" depends="set-french-locale,all"/> |
| <target name="all-ja-zh" depends="set-ja-zh_CN-locales,all"/> |
| |
| <target name="set-ja-zh_CN-locales"> |
| <property name="locales" value="ja,zh_CN"/> |
| <property name="locjar.locales" value="${locales}"/> |
| <property name="locmakenbm.locales" value="${locales}"/> |
| <property name="locjhindexer.locales" value="${locales}"/> |
| <property name="localized.build.locales" value="${locales}"/> |
| </target> |
| |
| <target name="set-dutch-locale"> |
| <property name="locales" value="nl"/> |
| <property name="locjar.locales" value="${locales}"/> |
| <property name="locmakenbm.locales" value="${locales}"/> |
| <property name="locjhindexer.locales" value="${locales}"/> |
| <property name="localized.build.locales" value="${locales}"/> |
| </target> |
| |
| <target name="set-russian-locale"> |
| <property name="locales" value="ru"/> |
| <property name="locjar.locales" value="${locales}"/> |
| <property name="locmakenbm.locales" value="${locales}"/> |
| <property name="locjhindexer.locales" value="${locales}"/> |
| <property name="localized.build.locales" value="${locales}"/> |
| </target> |
| |
| <target name="set-french-locale"> |
| <property name="locales" value="fr"/> |
| <property name="locjar.locales" value="${locales}"/> |
| <property name="locmakenbm.locales" value="${locales}"/> |
| <property name="locjhindexer.locales" value="${locales}"/> |
| <property name="localized.build.locales" value="${locales}"/> |
| </target> |
| |
| <!-- end of localized builds --> |
| |
| |
| <target name="print-selected-modules" depends="init-module-list" description="Prints list of modules to build in selected cluster config."> |
| <echo message="modules=${allmodules}"/> |
| </target> |
| |
| <target name="check-commit-validation"> |
| <condition property="run.validation" > |
| <and> |
| <or> |
| <not> |
| <isset property="nb.run.validation"/> |
| </not> |
| <istrue value="${nb.run.validation}"/> |
| </or> |
| </and> |
| </condition> |
| </target> |
| |
| <target |
| name="commit-validation" |
| depends="commitValidation,no-commit-validation" |
| description="Runs tests to validate IDE before commit." |
| /> |
| |
| <target name="all-commitValidation" description="dummy target for build error recognition facility"/> |
| |
| <!-- keep this target name at least for a while for backward compat -jglick --> |
| <target name="commitValidation" depends="all-commitValidation,check-commit-validation" if="run.validation"> |
| <property name="build.test.results.dir" location="${nb.build.dir}/test/commit-validation/results"/> |
| <property name="test.type" value="test"/> |
| <delete dir="${build.test.results.dir}"/> |
| <mkdir dir="${build.test.results.dir}"/> |
| |
| <taskdef name="resolvelist" classname="org.netbeans.nbbuild.ResolveList" classpath="${nbantext.jar}"/> |
| <resolvelist list="${nb.clusters.list}" name="nb.clusters.validation.list" path="modules.fullpath" dir="${nb_all}" ignoremissing="true"> |
| <mapper type="regexp" from="(.*)" to="validation.\1"/> |
| </resolvelist> |
| <echo message="Run commit validation on: ${nb.clusters.validation.list}"/> |
| <subant target="${test.type}" > |
| <property name="test.config" value="commit"/> |
| <property name="continue.after.failing.tests" value="true"/> |
| <property name="build.test.unit.results.dir" location="${build.test.results.dir}"/> |
| <property name="build.test.qa-functional.results.dir" location="${build.test.results.dir}"/> |
| <property name="test-unit-sys-prop.ignore.random.failures" value="true"/> |
| <property name="test-qa-functional-sys-prop.ignore.random.failures" value="true"/> |
| <dirset dir=".." includes="${nb.clusters.validation.list}"/> |
| </subant> |
| |
| <pathconvert property="failed.tests" pathsep="${line.separator}"> |
| <fileset dir="${build.test.results.dir}"> |
| <include name="TEST-*.xml"/> |
| <not> |
| <and> |
| <contains text='errors="0"'/> |
| <contains text='failures="0"'/> |
| </and> |
| </not> |
| </fileset> |
| </pathconvert> |
| <junitreport todir="${build.test.results.dir}"> |
| <fileset dir="${build.test.results.dir}"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="frames" todir="${build.test.results.dir}/html"/> |
| </junitreport> |
| <echo message="Report generated to ${build.test.results.dir}/html/index.html"/> |
| <fail message="There were failed tests:${line.separator}${failed.tests} ${line.separator}${line.separator}Test report html: ${build.test.results.dir}/html/index.html"> |
| <condition> |
| <not> |
| <or> |
| <equals arg1="${failed.tests}" arg2=""/> |
| <equals arg1="${continue.after.failing.tests}" arg2="true"/> |
| </or> |
| </not> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="no-commit-validation" depends="check-commit-validation" unless="run.validation"> |
| <echo> |
| *** WARNING *** |
| You may not commit any changes into the repository without running the commit validation test suite. |
| For more information: http://www.netbeans.org/community/guidelines/commit.html |
| </echo> |
| </target> |
| |
| <target name="verify-all-libs-and-licenses" depends="bootstrap,download-all-extbins" description="Verify the contents of third-party libraries and licenses."> |
| <taskdef name="verifylibsandlicenses" classname="org.netbeans.nbbuild.extlibs.VerifyLibsAndLicenses" classpath="${nbantext.jar}"/> |
| <property name="verify-libs-and-licenses.haltonfailure" value="false" /> |
| <verifylibsandlicenses report="${nb.build.dir}/verifylibsandlicenses.xml" nball=".." haltonfailure="${verify-libs-and-licenses.haltonfailure}" /> |
| </target> |
| |
| <target name="verify-libs-and-licenses" depends="bootstrap,download-selected-extbins" description="Verify the contents of third-party libraries and licenses in the selected configuration."> |
| <taskdef name="verifylibsandlicenses" classname="org.netbeans.nbbuild.extlibs.VerifyLibsAndLicenses" classpath="${nbantext.jar}"/> |
| <property name="verify-libs-and-licenses.haltonfailure" value="false" /> |
| <verifylibsandlicenses report="${nb.build.dir}/verifylibsandlicenses.xml" nball=".." haltonfailure="${verify-libs-and-licenses.haltonfailure}" /> |
| </target> |
| |
| <target name="create-mandatory-files-for-binary" depends="bootstrap,download-selected-extbins" description="Create a summary of the licenses used by libraries in the build."> |
| |
| <delete dir="${netbeans.dest.dir}/licenses" /> |
| <mkdir dir="${netbeans.dest.dir}/licenses" /> |
| |
| <createlicensesummary licenseStub="${nb_all}/LICENSE" |
| noticeStub="notice-stub.txt" |
| report="${nb.build.dir}/createlicensesummary.xml" |
| nball=".." |
| build="${netbeans.dest.dir}" |
| license="${netbeans.dest.dir}/LICENSE" |
| licenseTargetDir="${netbeans.dest.dir}/licenses" |
| notice="${nb.build.dir}/notice-temp" |
| binary="true" |
| excludes="${nb-extra-files}" |
| /> |
| |
| <concat destfile="${netbeans.dest.dir}/NOTICE"> |
| <fileset file="${nb.build.dir}/notice-temp" /> |
| <fileset dir="${nb_all}" |
| includes="*/notice.txt" /> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer /> |
| <replaceregex pattern="(\r?\n)(\r?\n)(\r?\n)+" |
| replace="\1\1\1" |
| flags="g" /> |
| </tokenfilter> |
| </filterchain> |
| </concat> |
| <dirset id="source.dirset" dir="${nb_all}" |
| includes="${allmodules}" |
| /> |
| <taskdef name="createdependencies" classname="org.netbeans.nbbuild.extlibs.CreateDependencies" classpath="${nbantext.jar}"/> |
| <createdependencies refid="source.dirset" dependencies="${netbeans.dest.dir}/DEPENDENCIES"/> |
| </target> |
| |
| <target name="-copy-platform-readme" depends="-check-nb-cluster" unless="has.nb.cluster"> |
| </target> |
| |
| <target name="build-source-config" |
| depends="init,set-buildnumber,-check-nb-cluster" |
| description="Packages sources needed to compile one cluster.config"> |
| <property name="buildnum" value="${buildnumber}"/> |
| <echo message="Packaging sources of ${cluster.config} modules"/> |
| |
| <resolve name="harness-modules" value="nb.cluster.harness"/> |
| |
| <mkdir dir="${nb.build.dir}"/> |
| <condition property="build.source.config.add.ide" else="" value=",nb/ide.launcher"> |
| <isset property="has.nb.cluster" /> |
| </condition> |
| <dirset id="source.dirset" dir="${nb_all}" |
| includes="${allmodules},${harness-modules},nbbuild${build.source.config.add.ide},nbi,libs.antlr3.devel,libs.junit4" |
| excludes="nbi/engine/lib,nbi/infra/build/jvm,nbi/infra/sandbox,nbi/infra/server,nbi/infra/utils" |
| /> |
| <pathconvert property="source.dirs" pathsep="," refid="source.dirset"> |
| <regexpmapper from="${nb_all}/(.*)$" to="\1/**/*" handledirsep="yes"/> |
| </pathconvert> |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> <!--XXX--> |
| <manifest dir="${nb_all}"> |
| <include name="libs.antlr3.devel/external/binaries-list"/> |
| </manifest> |
| </downloadbinaries> |
| <createlicensesummary licenseStub="${nb_all}/LICENSE" |
| noticeStub="notice-stub.txt" |
| report="${nb.build.dir}/createlicensesummary.xml" |
| nball=".." |
| build="${netbeans.build.dir}" |
| license="${nb.build.dir}/LICENSE" |
| licenseTargetDir="${nb.build.dir}/licenses" |
| notice="${nb.build.dir}/NOTICE" |
| binary="false" |
| /> |
| <taskdef name="createdependencies" classname="org.netbeans.nbbuild.extlibs.CreateDependencies" classpath="${nbantext.jar}"/> |
| <createdependencies refid="source.dirset" dependencies="${nb.build.dir}/DEPENDENCIES" sourceDependencies="true"/> |
| <concat destfile="${nb.build.dir}/cluster.properties"> |
| <fileset file="${nb_all}/nbbuild/cluster.properties" /> |
| <filterchain> |
| <tokenfilter> |
| <replaceregex pattern="cluster.config=.*" replace="cluster.config=${cluster.config}" /> |
| </tokenfilter> |
| </filterchain> |
| </concat> |
| <condition property="source.zip.readme" else="${nb_all}/README.md" |
| value="${nb_all}/README.md"> |
| <isset property="has.nb.cluster" /> |
| </condition> |
| <zip zipfile="${nb.build.dir}/${cluster.config}-src-${buildnum}.zip" duplicate="preserve"> |
| <zipfileset dir="${nb_all}" includes="${source.dirs}"> |
| <!--exclude all build directories and external jars/zips in the top level directory:--> |
| <exclude name="*/build/"/> |
| <exclude name="*/external/*.jar"/> |
| <exclude name="*/external/*.zip"/> |
| <!--exclude all build directories and external jars/zips in the cluster directories, |
| but keep nbi/infra/build, which is a directory with sources:--> |
| <exclude name="[^n]*/*/build/"/> |
| <exclude name="nb/*/build/"/> |
| <exclude name="*/*/external/*.jar"/> |
| <exclude name="*/*/external/*.zip"/> |
| <exclude name="nbbuild/netbeans/**"/> |
| <exclude name="nbbuild/cluster.properties" /> |
| </zipfileset> |
| <zipfileset dir="${nb_all}"> |
| <include name="build.xml"/> |
| </zipfileset> |
| <zipfileset file="${nb.build.dir}/cluster.properties" fullpath="nbbuild/cluster.properties" /> |
| <zipfileset file="${nb.build.dir}/DEPENDENCIES" /> |
| <zipfileset file="${nb.build.dir}/NOTICE" /> |
| <zipfileset file="${nb.build.dir}/LICENSE" /> |
| <zipfileset dir="${nb.build.dir}/licenses" includes="**" prefix="licenses" /> |
| <zipfileset file="${source.zip.readme}" fullpath="README.md" erroronmissingarchive="false" /> |
| <zipfileset file="${nb_all}/nbbuild/build/netbeansrelease.properties" fullpath="nbbuild/netbeansrelease.properties" erroronmissingarchive="false"/> |
| <zipfileset file="${nb_all}/nbbuild/build/gitinfo.properties" fullpath="nbbuild/gitinfo.properties" erroronmissingarchive="false" /> |
| </zip> |
| </target> |
| |
| <target name="generate-golden-files-init" depends="init,bootstrap" > |
| <property name="generated.files.dir" location="${nb.build.dir}/generated" /> |
| <mkdir dir="${generated.files.dir}" /> |
| </target> |
| <target name="generate-golden-files" depends="generate-golden-files-init" description="Generate summaries of module dependencies."> |
| <property name="deps.max.friends" value="20"/> |
| |
| <taskdef name="deps" classname="org.netbeans.nbbuild.ModuleDependencies" classpath="${nbantext.jar}"/> |
| |
| <deps> |
| <inputpattern dir="${netbeans.dest.dir}"/> |
| <output type="group-dependencies" file="${generated.files.dir}/cluster-deps.txt" /> |
| <output type="group-implementation-dependencies" file="${generated.files.dir}/cluster-impl-deps.txt" /> |
| <output type="modules" file="${generated.files.dir}/modules.txt" /> |
| <output type="disabled-autoloads" file="${generated.files.dir}/disabled-autoloads.txt"/> |
| <output type="dependencies" file="${generated.files.dir}/deps.txt" /> |
| <output type="implementation-dependencies" file="${generated.files.dir}/impl-deps.txt" /> |
| <output type="public-packages" file="${generated.files.dir}/public-packages.txt" /> |
| <output type="shared-packages" file="${generated.files.dir}/shared-packages.txt" /> |
| <output type="friend-packages" file="${generated.files.dir}/friend-packages.txt" /> |
| <output type="group-friend-packages" file="${generated.files.dir}/group-friend-packages.txt" /> |
| <output type="kits" file="${generated.files.dir}/kits.txt" /> |
| <output type="kit-dependencies" file="${generated.files.dir}/kit-deps.txt" /> |
| <output type="plugins" file="${generated.files.dir}/plugins.txt"/> |
| <output type="reverse-dependencies" file="${generated.files.dir}/reverse-deps.txt"/> |
| </deps> |
| |
| <taskdef name="test-deps" classname="org.netbeans.nbbuild.ModuleTestDependencies" classpath="${nbantext.jar}"/> |
| <test-deps output="${generated.files.dir}/test-deps.txt" reverseOutput="${generated.files.dir}/reverse-test-deps.txt"/> |
| </target> |
| |
| <target name="generate-files-layout" depends="generate-golden-files-init" description="Generate summary of installed files."> |
| <taskdef name="generate-files-layout" classname="org.netbeans.nbbuild.GenerateFilesLayout" classpath="${nbantext.jar}"/> |
| <property name="check.files.layout.generated" location="${generated.files.dir}/files-layout.txt" /> |
| |
| <property name="check-file-layout-root" location="${netbeans.dest.dir}" /> |
| <generate-files-layout output="${check.files.layout.generated}"> |
| <files dir="${check-file-layout-root}" casesensitive="yes" > |
| <exclude name="bin/"/> |
| <exclude name="etc/"/> |
| <exclude name="mobility*/emulators-inst/wtk22_*.zip"/> <!-- XXX #110820 --> |
| <exclude name="*/.lastModified"/> |
| </files> |
| </generate-files-layout> |
| </target> |
| |
| <target name="index-layer-paths" depends="generate-golden-files-init" description="Create index of layer paths."> |
| <property name="build" location="netbeans"/> |
| <fail message="You must create a build first."> |
| <condition> |
| <not> |
| <available file="${build}" type="dir"/> |
| </not> |
| </condition> |
| </fail> |
| <taskdef name="layerindex" classname="org.netbeans.nbbuild.LayerIndex" classpath="${nbantext.jar}"/> |
| <layerindex output="${generated.files.dir}/layers.txt" serviceoutput="${generated.files.dir}/services.txt"> |
| <modules dir="${build}"> |
| <include name="**/*.jar"/> |
| </modules> |
| </layerindex> |
| </target> |
| |
| <target name="summarize-hgmail" depends="generate-golden-files-init" description="Create summary of .hgmail coverage."> |
| <taskdef name="summarize-hgmail" classname="org.netbeans.nbbuild.SummarizeHgmail" classpath="${nbantext.jar}"/> |
| <summarize-hgmail output="${generated.files.dir}/hgmail-summary.txt"> |
| <hgmails dir="${nb_all}"> |
| <include name=".hgmail"/> |
| <include name="*/.hgmail"/> |
| </hgmails> |
| </summarize-hgmail> |
| </target> |
| |
| <target name="display-l10n-list-matches" description="Show which files are actually matched by an l10n.list in some module."> |
| <property name="nbroot" location=".."/> |
| <input addproperty="module">Select a top-level module (e.g. "java") to display results for:</input> |
| <property name="listfile" location="${nbroot}/${module}/l10n.list"/> |
| <echo>${listfile}:1: Matches follow... (click on hyperlinks from IDE!)</echo> |
| <echo>(warning: 'exclude' directives not honored here yet)</echo><!-- XXX use filtersets or something to fix --> |
| <apply parallel="false" executable="sh"> |
| <arg value="-c"/> |
| <arg value="echo $0:1"/> |
| <fileset dir="${nbroot}" includesfile="${listfile}"/> |
| </apply> |
| </target> |
| |
| <target name="increment-spec-versions" depends="bootstrap,init-module-list" description="Increment all standard module specification versions. Pass -Dbranch=true if not on the trunk."> |
| <property name="branch" value="false"/> |
| <taskdef name="incrspecvers" classname="org.netbeans.nbbuild.IncrementSpecificationVersions" classpath="${nbantext.jar}"/> |
| <incrspecvers nbroot=".." modules="${allmodules}" branch="${branch}"/> |
| </target> |
| |
| <target name="init-test-dist" depends="init"> |
| <sortsuitemodules unsortedmodules="${modules.fullpath}" sortedmodulesproperty="test.modules.sorted" sorttests="true"/> |
| </target> |
| <target name="build-test-dist" depends="init-test-dist" description="Build test distribution"> |
| <!-- if is 'false' it will ignore compilation error in subant --> |
| <property name= "test.fail.on.error" value="true"/> |
| <subant-junit buildpath="${test.modules.sorted}" target="test-build" failonerror="${test.fail.on.error}" report="${nb.build.dir}/build-all-tests.xml"/> |
| <!-- adding performance tests to BTD --> |
| <!-- #178009: disabling; has various non-platform dependencies which break BTD in some cluster configs; anyway should be made a normal module! |
| <subant-junit buildpath="${nb_all}${file.separator}performance" target="test-build" failonerror="${test.fail.on.error}" report="${nb.build.dir}/build-performance-tests.xml"/> |
| --> |
| <!-- copy templates --> |
| <copy todir="${test.dist.dir}"> |
| <fileset dir="testdist/release"/> |
| </copy> |
| <jar jarfile="${test.dist.dir}/tasks.jar"> |
| <fileset dir="${build.ant.classes.dir}"> |
| <include name="org/netbeans/nbbuild/testdist/"/> |
| </fileset> |
| </jar> |
| <zip basedir="${test.dist.dir}" destfile="${nb.build.dir}/testdist.zip"/> |
| </target> |
| |
| <target name="gen-sigtests" depends="init-module-list" |
| description="Generates snaphost of API of all modules" |
| > |
| <echo message="Generating signature files for ${cluster.config} modules"/> |
| <property name="sigtest.basedir" location="${nb.build.dir}/sigtest/snapshot"/> |
| <property name="sigtest.output.dir" location="${nb.build.dir}/sigtest/generate"/> |
| |
| <subant target="gen-sigtest" buildpath="${modules.fullpath}" failonerror="false"> |
| <property name="sigtest.basedir" value="${sigtest.basedir}"/> |
| <property name="sigtest.output.dir" location="${sigtest.output.dir}"/> |
| </subant> |
| </target> |
| |
| <target name="gen-sigtests-release" depends="init" |
| description="Generates signature files into stable API modules directories" |
| > |
| <echo message="Generating signature files into stable API modules directories"/> |
| |
| <subant target="gen-sigtest" buildpath="${modules.fullpath}"/> |
| </target> |
| |
| <target name="check-sigtests-release" depends="init" |
| description="Checks signature files of stable API modules" |
| > |
| <echo message="Checking signature files of stable API modules"/> |
| |
| <property name="sigtest.output.dir" location="${nb.build.dir}/sigtest/check-release"/> |
| <property name="fail.on.error" value="true"/> |
| <delete dir="${sigtest.output.dir}"/> |
| <mkdir dir="${sigtest.output.dir}"/> |
| <subant target="check-sigtest" buildpath="${modules.fullpath}" failonerror="${fail.on.error}"> |
| <property name="sigtest.output.dir" value="${sigtest.output.dir}"/> |
| </subant> |
| </target> |
| |
| <target name="check-sigtests"> |
| <echo message="Checking signature files for ${cluster.config} modules"/> |
| <property name="sigtest.output.dir" location="${nb.build.dir}/sigtest/check-snapshot"/> |
| <antcall target="-do-check-sigtests"> |
| <param name="sigtest.check.type" value="strictcheck"/> |
| <param name="sigtest.output.dir" value="${sigtest.output.dir}"/> |
| </antcall> |
| <junitreport todir="${sigtest.output.dir}"> |
| <fileset dir="${sigtest.output.dir}"> |
| <include name="*.xml"/> |
| </fileset> |
| <report todir="${sigtest.output.dir}/html" format="frames"/> |
| </junitreport> |
| <echo message="Report generated to ${sigtest.output.dir}/html/index.html"/> |
| </target> |
| |
| <target name="check-sigtests-version"> |
| <echo message="Checking version of signature files for ${cluster.config} modules"/> |
| |
| <property name="sigtest.previous.url" value="http://deadlock.netbeans.org/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/build/sigtest/snapshot/*zip*/snapshot.zip"/> |
| <property name="sigtest.prev.dir" location="${nb.build.dir}/sigtest/prev-snapshot"/> |
| <property name="sigtest.output.dir" location="${nb.build.dir}/sigtest/versioncheck"/> |
| |
| <mkdir dir="${sigtest.prev.dir}"/> |
| <get src="${sigtest.previous.url}" dest="${sigtest.prev.dir}/snapshot.zip"/> |
| <unzip src="${sigtest.prev.dir}/snapshot.zip" dest="${sigtest.prev.dir}"> |
| <mapper type="flatten"/> |
| </unzip> |
| |
| <antcall target="-do-check-sigtests"> |
| <param name="sigtest.check.type" value="versioncheck"/> |
| <param name="sigtest.basedir" location="${sigtest.prev.dir}"/> |
| <param name="sigtest.output.dir" value="${sigtest.output.dir}"/> |
| </antcall> |
| <junitreport todir="${sigtest.output.dir}"> |
| <fileset dir="${sigtest.output.dir}"> |
| <include name="*.xml"/> |
| </fileset> |
| <report todir="${sigtest.output.dir}/html" format="frames"/> |
| </junitreport> |
| <echo message="Report generated to ${sigtest.output.dir}/html/index.html"/> |
| </target> |
| |
| <target name="-do-check-sigtests" depends="init-module-list"> |
| <fail unless="sigtest.check.type"/> |
| <fail unless="sigtest.output.dir"/> |
| |
| <property name="sigtest.basedir" location="${nb.build.dir}/sigtest/snapshot"/> |
| <property name="sigtest.fail.on.error" value="false"/> |
| |
| <mkdir dir="${sigtest.basedir}"/> |
| <delete dir="${sigtest.output.dir}"/> |
| <mkdir dir="${sigtest.output.dir}"/> |
| <subant target="check-sigtest" buildpath="${modules.fullpath}" failonerror="${sigtest.fail.on.error}"> |
| <property name="sigtest.output.dir" value="${sigtest.output.dir}"/> |
| <property name="sigtest.basedir" value="${sigtest.basedir}"/> |
| </subant> |
| </target> |
| |
| <target name="findbugs-cluster" depends="init"> |
| <echo message="Running findbugs for ${cluster.config} modules"/> |
| <subant target="findbugs" buildpath="${modules.fullpath}"> |
| <property name="findbugs.continue.after.error" value="true"/> |
| </subant> |
| </target> |
| |
| <target name="findbugs" depends="init" description="Runs findbugs target in modules specified by ${findbugs.modules}."> |
| <subant target="findbugs"> |
| <property name="findbugs.continue.after.error" value="true"/> |
| <dirset dir=".." includes="${findbugs.modules}"/> |
| </subant> |
| </target> |
| |
| |
| <target name="generate-uc-catalog" depends="bootstrap"> |
| <taskdef name="makeupdatedesc" |
| classname="org.netbeans.nbbuild.MakeUpdateDesc" |
| classpath="${nbantext.jar}"/> |
| <property name="nbms.location" location="nbms"/> |
| <property name="catalog.file" location="${nbms.location}/updates.xml"/> |
| <property name="tasks.file" location="${catalog.file}/../tasks.jar"/> |
| <property name="catalog.base.url" value="."/> |
| <property name="use.license.url.in.catalog" value="true"/> |
| <property name="catalog.notification.message" value=""/> |
| <property name="catalog.notification.url" value=""/> |
| <property name="catalog.content.description" value=""/> |
| <property name="catalog.content.description.url" value=""/> |
| <property name="catalog.license.header" value="${nb_all}/nbbuild/catalog-license-header.txt"/> |
| |
| <!-- <genau config="ausrc/modules.setup" nbmLocation="${nbms.location}" catalog="${catalog.file}" catalogDeploymentLocation="${catalog.base.url}"/>--> |
| <makeupdatedesc desc="${catalog.file}" distbase="${catalog.base.url}" automaticgrouping="true" uselicenseurl="${use.license.url.in.catalog}" notificationmessage="${catalog.notification.message}" notificationurl="${catalog.notification.url}" contentdescription="${catalog.content.description}" contentdescriptionurl="${catalog.content.description.url}" desclicense="${catalog.license.header}"> |
| <fileset dir="${nbms.location}"> |
| <include name="**/*.nbm"/> |
| <include name="**/*.jar"/> |
| </fileset> |
| <updaterjar> |
| <fileset dir="netbeans" includes="platform*/modules/ext/updater.jar"/> |
| </updaterjar> |
| </makeupdatedesc> |
| <gzip src="${catalog.file}" destfile="${catalog.file}.gz"/> |
| <copy tofile="${tasks.file}" file="netbeans/harness/tasks.jar"/> |
| </target> |
| |
| <target name="verify-update-descriptor" depends="init"> |
| <taskdef name="vuc" classname="org.netbeans.nbbuild.VerifyUpdateCenter" classpath="${nbantext.jar}"/> |
| <echo>Checking synchronic and diachronic consistency of NBMs; see http://wiki.netbeans.org/DevFaqImplementationDependency</echo> |
| <property name="old.updates" value=""/> |
| <property name="nbms.location" location="nbms"/> |
| <vuc updates="${nbms.location}/updates.xml" oldupdatesurl="${old.updates}" report="${nbms.location}/vuc-report.xml"> |
| <classpath> |
| <fileset dir="netbeans"> |
| <include name="platform*/lib/*.jar"/> |
| <include name="platform*/core/*.jar"/> |
| </fileset> |
| </classpath> |
| </vuc> |
| </target> |
| |
| <!-- #42157 - Scans all xml layers for OptionsExport folder and creates |
| list of include/exclude patterns for import on the first start. --> |
| <target name="create-netbeans-import" depends="-check-nb-cluster" if="has.nb.cluster"> |
| <taskdef name="optionsimport" classname="org.netbeans.nbbuild.LayerOptionsImport" classpath="${nbantext.jar}"/> |
| <mkdir dir="${netbeans.dest.dir}/etc"/> |
| <optionsimport output="${netbeans.dest.dir}/etc/netbeans.import"> |
| <modules dir="${netbeans.dest.dir}"> |
| <include name="**/*.jar"/> |
| </modules> |
| </optionsimport> |
| </target> |
| |
| <target name="test" depends="init" description="Runs ${test.type} target in modules specified by ${test.modules}."> |
| <property name="test.modules" value="${allmodules}"/> |
| <property name="test.type" value="test"/> |
| <subant target="${test.type}" > |
| <property name="continue.after.failing.tests" value="true"/> |
| <dirset dir=".." includes="${test.modules}"/> |
| </subant> |
| </target> |
| |
| <target name="update-copyright-owner"> |
| <taskdef name="checklicense" classname="org.netbeans.nbbuild.CheckLicense" classpath="${nbantext.jar}"/> |
| <fileset id="fs" dir=".."> |
| <exclude name=".hg/"/> <!-- not sources --> |
| <exclude name="**/*.html"/><exclude name="**/*.css"/> <!-- JavaHelp etc. pages use their own header style --> |
| <exclude name="**/test/**/data/"/> <!-- test data should never be touched --> |
| <exclude name="**/*.orig"/> <!-- result of hg revert --> |
| <exclude name="*/external/"/> <!-- foreign licenses etc. --> |
| <exclude name="otherlicenses/"/> <!-- modules with thirdparty licenses --> |
| <exclude name="contrib/"/><exclude name="l10n/"/><exclude name="misc/"/><exclude name="nb-javac/"/> <!-- subrepos --> |
| </fileset> |
| <property name="prefix" value="^([ \t]*[*#/;%~-]*[ \t]*)?"/> |
| <checklicense> |
| <fileset refid="fs"/> |
| <convert token="${prefix}nbbuild/licenses/CDDL-GPL-2-CP\. +Sun designates this" prefix="true"> |
| <line text="nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this"/> |
| </convert> |
| <convert token="${prefix}each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP\. +Sun" prefix="true"> |
| <line text="each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle"/> |
| </convert> |
| <convert token="by Sun in the GPL Version 2 section of the License file that"> |
| <line text="by Oracle in the GPL Version 2 section of the License file that"/> |
| </convert> |
| <convert token="-\d{4} Sun Microsystems, Inc\. All rights reserved\."> |
| <line text="-2010 Oracle and/or its affiliates. All rights reserved."/> |
| <line text=""/> |
| <line text="Oracle and Java are registered trademarks of Oracle and/or its affiliates."/> |
| <line text="Other names may be trademarks of their respective owners."/> |
| </convert> |
| <convert token="\d{4} Sun Microsystems, Inc\. All rights reserved\."> |
| <line text="2010 Oracle and/or its affiliates. All rights reserved."/> |
| <line text=""/> |
| <line text="Oracle and Java are registered trademarks of Oracle and/or its affiliates."/> |
| <line text="Other names may be trademarks of their respective owners."/> |
| </convert> |
| </checklicense> |
| <checklicense fragment="nbbuild/licenses/CDDL-GPL-2-CP. Sun" fail="whenpresent"> |
| <fileset refid="fs"/> |
| </checklicense> |
| <checklicense fragment="by Sun in the GPL" fail="whenpresent"> |
| <fileset refid="fs"/> |
| </checklicense> |
| <!-- Samples: --> |
| <checklicense> |
| <fileset refid="fs"/> |
| <convert token="${prefix}Copyright \(c\) \d+(?:-\d+)?, Sun Microsystems, Inc\." prefix="true"> |
| <line text="Copyright (c) 2010, Oracle."/> |
| </convert> |
| <convert token=" \* Neither the name of Sun Microsystems, Inc\. nor the names of its "> |
| <line text=" * Neither the name of Oracle nor the names of its "/> |
| </convert> |
| <convert token=" \* Neither the name of Sun Microsystems nor the names of its contributors"> |
| <line text=" * Neither the name of Oracle nor the names of its contributors"/> |
| </convert> |
| <!-- XXX there are other patterns in mobility.midpexamples --> |
| </checklicense> |
| <checklicense fragment=", Sun Microsystems, Inc." fail="whenpresent"> |
| <fileset refid="fs"/> |
| </checklicense> |
| <checklicense fragment="the name of Sun Microsystems" fail="whenpresent"> |
| <fileset refid="fs"/> |
| </checklicense> |
| </target> |
| |
| <target name="refresh-update_tracking-ml" depends="init-tasks"> |
| |
| <basename property="code.name.base.dashes" file="${nbm.filename}" suffix=".nbm"/> |
| |
| <condition property="module" value="tmp/netbeans/lib/boot.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-netbeans-bootstrap" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/core/core.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-netbeans-core-startup" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/core/core.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-netbeans-core-startup-base" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/lib/org-openide-util-lookup.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-openide-util-lookup" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/lib/org-openide-util.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-openide-util" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/lib/org-openide-util-ui.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-openide-util-ui" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/core/org-openide-filesystems.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-openide-filesystems" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/core/org-openide-filesystems-compat8.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-openide-filesystems-compat8" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/lib/org-openide-modules.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-openide-modules" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/lib/org-netbeans-libs-asm.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-netbeans-libs-asm" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/lib/org-netbeans-libs-asm.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-netbeans-libs-asm" /> |
| </condition> |
| |
| <condition property="module" value="tmp/netbeans/core/org-netbeans-upgrader.jar"> |
| <equals arg1="${code.name.base.dashes}" arg2="org-netbeans-upgrader" /> |
| </condition> |
| |
| <property name="module" value="tmp/netbeans/modules/${code.name.base.dashes}.jar"/> |
| |
| <patternset id="module.files"> |
| <!-- include name="${module.jar}"/ --> |
| <include name="**/*.*"/> |
| </patternset> |
| |
| |
| <genlist outputfiledir="newbuild" module="${module}"> |
| <fileset dir="newbuild/tmp/netbeans"> |
| <patternset refid="module.files"/> |
| </fileset> |
| </genlist> |
| |
| </target> |
| |
| <target name="rat" depends="bootstrap"> |
| <taskdef name="exclusionsfromlicenseinfo" classname="org.netbeans.nbbuild.extlibs.ExclusionsFromLicenseInfo" classpath="${nbantext.jar}"/> |
| <taskdef name="reportFromLicenseinfo" classname="org.netbeans.nbbuild.extlibs.ReportFromLicenseinfo" classpath="${nbantext.jar}"/> |
| |
| <downloadbinaries cache="${binaries.cache}" server="${binaries.server}"> |
| <manifest dir="${nb_all}"> |
| <include name="nbbuild/external/binaries-list"/> |
| </manifest> |
| </downloadbinaries> |
| |
| <taskdef uri="antlib:org.apache.rat.anttasks" resource="org/apache/rat/anttasks/antlib.xml"> |
| <classpath> |
| <pathelement location="external/apache-rat-0.12.jar"/> |
| </classpath> |
| </taskdef> |
| |
| <exclusionsfromlicenseinfo nball=".." licenseinfoFileset="exclusionsfromlicenseinfo" exclusionFile="build/rat-exclusions-licenseinfo.txt"/> |
| |
| <fileset dir="${nb_all}" id="rat.files"> |
| <excludesfile name="rat-exclusions.txt" /> |
| <excludesfile name="build/rat-exclusions-licenseinfo.txt" /> |
| </fileset> |
| |
| <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportfile="build/rat-report.txt"> |
| <rat:fullTextMatcher licenseFamilyCategory="AL" licenseFamilyName="Apache License 2.0 Short header"> |
| Licensed to the Apache Software Foundation (ASF) under one or more contributor |
| license agreements; and to You under the Apache License, Version 2.0. |
| </rat:fullTextMatcher> |
| <rat:approvedLicense familyName="Apache License 2.0 Short header"/> |
| |
| <resources refid="rat.files" /> |
| </rat:report> |
| <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" format="xml" reportfile="build/rat-report.xml"> |
| <rat:fullTextMatcher licenseFamilyCategory="AL" licenseFamilyName="Apache License 2.0 Short header"> |
| Licensed to the Apache Software Foundation (ASF) under one or more contributor |
| license agreements; and to You under the Apache License, Version 2.0. |
| </rat:fullTextMatcher> |
| <rat:approvedLicense familyName="Apache License 2.0 Short header"/> |
| |
| <resources refid="rat.files" /> |
| </rat:report> |
| <taskdef name="rattotest" classname="org.netbeans.nbbuild.RatReportTask" classpath="${build.ant.classes.dir}"/> |
| <loadproperties srcFile="cluster.properties" /> |
| <property name="rat-report.haltonfailure" value="false" /> |
| <rattotest source="build/rat-report.xml" report="${nb.build.dir}/rat/" haltonfailure="${rat-report.haltonfailure}" /> |
| |
| <reportFromLicenseinfo nball=".." report="${nb.build.dir}/rat-appendix.txt" /> |
| </target> |
| |
| </project> |