Implementation of community build
authorrnovak@netbeans.org
Tue, 19 Aug 2008 19:17:04 +0200
changeset 995bdad3d834df2
parent 991 314dc564b963
child 996 3b932063f005
Implementation of community build
build.xml
     1.1 --- a/build.xml	Mon Jul 14 05:55:50 2008 +0900
     1.2 +++ b/build.xml	Tue Aug 19 19:17:04 2008 +0200
     1.3 @@ -48,6 +48,9 @@
     1.4  ]>
     1.5  
     1.6  <project name="ml-build" default="build" basedir=".">
     1.7 +
     1.8 +  <import file="../nbbuild/default.xml"/>
     1.9 +
    1.10    <target name="assure-ant">
    1.11        <fail message="You need Ant version 1.7.0 or later to build NetBeans.">
    1.12            <condition>
    1.13 @@ -198,4 +201,239 @@
    1.14       </copy>
    1.15   </target>
    1.16  
    1.17 + <target name="build-community-nbms" depends="bootstrap,init-tasks">
    1.18 +      <taskdef name="repeat" classname="org.netbeans.nbbuild.Repeat"
    1.19 +               classpath="${main.dir}/nbbuild/nbantext.jar"/>
    1.20 +
    1.21 +      <property name="netbeans.dest.dir.ml" location="nbms/community"/>
    1.22 +      <mkdir dir="${netbeans.dest.dir.ml}"/>
    1.23 +
    1.24 +      <property name="netbeans.build.dir.ml" location="build/community"/>
    1.25 +      <delete dir="${netbeans.build.dir.ml}"/>
    1.26 +      <mkdir dir="${netbeans.build.dir.ml}"/>
    1.27 +
    1.28 +      <pathconvert property="dlocales" setonempty="false">
    1.29 +          <path path="${locales}"/>
    1.30 +          <chainedmapper>
    1.31 +          <filtermapper>
    1.32 +              <replacestring from="," to="_"/>
    1.33 +              <replacestring from="-" to="_"/>
    1.34 +          </filtermapper>
    1.35 +          <flattenmapper/>
    1.36 +          </chainedmapper>
    1.37 +      </pathconvert>
    1.38 +      <tstamp>
    1.39 +          <format property="spec.version" pattern="yyyy.M.d.kmm" locale="en" />
    1.40 +      </tstamp>
    1.41 +      <delete file="build/cluster-nbms-ml.properties"/>
    1.42 +
    1.43 +      <pathconvert property="base.dir" pathsep=",">
    1.44 +          <path>
    1.45 +              <pathelement location="dist"/>
    1.46 +          </path>
    1.47 +      </pathconvert>
    1.48 +
    1.49 +      <echo>Base dir: ${base.dir}</echo>
    1.50 +
    1.51 +      <pathconvert property="comm.clusters.list" pathsep=",">
    1.52 +          <path>
    1.53 +              <dirset dir="dist" id="cluster.dirs">
    1.54 +                  <include name="*"/>
    1.55 +              </dirset>
    1.56 +          </path>
    1.57 +          <map from="${base.dir}/" to=""/>
    1.58 +      </pathconvert>
    1.59 +
    1.60 +      <echo>Cluster dirs: ${comm.clusters.list}</echo>
    1.61 +
    1.62 +      <repeat target="build-one-nbm-ml" name="one.cluster.dir.ml" values="${comm.clusters.list}"/>
    1.63 +      <antcall target="build-one-nbm-ml" inheritall="false">
    1.64 +          <param name="is.kit" value="true"/>
    1.65 +          <param name="locales" value="${locales}"/>
    1.66 +          <param name="dlocales" value="${dlocales}"/>
    1.67 +          <param name="nb.cluster.nb" value="${nb.cluster.nb}"/>
    1.68 +          <param name="comm.clusters.list" value="${comm.clusters.list}"/>
    1.69 +          <param name="spec.version" value="${spec.version}"/>
    1.70 +          <param name="netbeans.dest.dir.ml" value="${netbeans.dest.dir.ml}"/>
    1.71 +          <param name="netbeans.build.dir.ml" value="${netbeans.build.dir.ml}"/>
    1.72 +      </antcall>
    1.73 +  </target>
    1.74 +
    1.75 +  <target name="-create-cluster-ml-nbm-metadata" unless="is.kit">
    1.76 +      <echo file="build/ml/nbms/tmp/manifest.mf">OpenIDE-Module: ${code.name}
    1.77 +OpenIDE-Module-Localizing-Bundle: ${code.name.base.slashes}/Bundle.properties
    1.78 +OpenIDE-Module-Specification-Version: ${spec.version}
    1.79 +</echo>
    1.80 +      <echo file="build/ml/nbms/classes/${code.name.base.slashes}/Bundle.properties">
    1.81 +OpenIDE-Module-Name=NetBeans 6.1 ${one.cluster.dir.ml} cluster localization (${locales})
    1.82 +OpenIDE-Module-Display-Category=Localization
    1.83 +OpenIDE-Module-Short-Description=NetBeans 6.1 ${one.cluster.dir.ml} cluster localization (${locales})
    1.84 +OpenIDE-Module-Long-Description=Delivers ${locales} localization for all modules in ${one.cluster.dir.ml} cluster of NetBeans 6.1
    1.85 +</echo>
    1.86 +  </target>
    1.87 + 
    1.88 +    <target name="-create-kit-ml-nbm-metadata" if="is.kit">
    1.89 +      <echo file="build/ml/nbms/tmp/manifest.mf">OpenIDE-Module: ${code.name}
    1.90 +OpenIDE-Module-Localizing-Bundle: ${code.name.base.slashes}/Bundle.properties
    1.91 +OpenIDE-Module-Specification-Version: ${spec.version}
    1.92 +OpenIDE-Module-Module-Dependencies: ${kit.deps}
    1.93 +</echo>
    1.94 +       <echo file="build/ml/nbms/classes/${code.name.base.slashes}/Bundle.properties">
    1.95 +OpenIDE-Module-Name=NetBeans 6.1 ${locales} localization kit
    1.96 +OpenIDE-Module-Display-Category=Localization
    1.97 +OpenIDE-Module-Short-Description=NetBeans 6.1 ${locales} localization kit
    1.98 +OpenIDE-Module-Long-Description=Delivers ${locales} localization of whole NetBeans 6.1
    1.99 +</echo>
   1.100 +  </target>
   1.101 +
   1.102 +  <target name="-check-ml-nbm-props">
   1.103 +      <condition property="run.ml.nbm.build" value="true">
   1.104 +          <and>
   1.105 +              <isset property="locales"/>
   1.106 +              <isset property="dlocales"/>
   1.107 +              <isset property="one.cluster.dir.ml"/>
   1.108 +              <isset property="comm.clusters.list"/>
   1.109 +              <isset property="spec.version"/>
   1.110 +              <isset property="netbeans.dest.dir.ml"/>
   1.111 +              <isset property="netbeans.build.dir.ml"/>
   1.112 +          </and>
   1.113 +      </condition>
   1.114 +  </target>
   1.115 +
   1.116 +  <target name="build-one-nbm-ml" depends="init-tasks,-check-ml-nbm-props" if="run.ml.nbm.build">
   1.117 +      <property file="build/cluster-nbms-ml.properties"/>
   1.118 +
   1.119 +      <echo>Cluster dir: ${one.cluster.dir.ml}</echo>
   1.120 +
   1.121 +      <pathconvert property="cluster.package.dir" setonempty="false">
   1.122 +          <path path="${one.cluster.dir.ml}"/>
   1.123 +          <chainedmapper>
   1.124 +          <filtermapper>
   1.125 +              <replacestring from="," to="_"/>
   1.126 +              <replacestring from="-" to="_"/>
   1.127 +              <replacestring from="." to="_"/>
   1.128 +          </filtermapper>
   1.129 +          <flattenmapper/>
   1.130 +          </chainedmapper>
   1.131 +      </pathconvert>
   1.132 +      <property name="cluster" location="${netbeans.build.dir.ml}/${one.cluster.dir.ml}"/>
   1.133 +
   1.134 +      <delete dir="build/ml/nbms"/>
   1.135 +      <delete dir="${netbeans.build.dir.ml}"/>
   1.136 +      <mkdir dir="${netbeans.build.dir.ml}/${one.cluster.dir.ml}"/>
   1.137 +      <copy todir="${netbeans.build.dir.ml}/${one.cluster.dir.ml}">
   1.138 +          <fileset dir="dist/${one.cluster.dir.ml}"/>
   1.139 +      </copy>
   1.140 +
   1.141 +      <condition property="code.name.base" value="org.netbeans.localization.${cluster.package.dir}.${dlocales}">
   1.142 +          <not>
   1.143 +              <isset property="is.kit"/>
   1.144 +          </not>
   1.145 +      </condition>
   1.146 +      <condition property="code.name.base" value="org.netbeans.localization.kit.${cluster.package.dir}.${dlocales}">
   1.147 +          <isset property="is.kit"/>
   1.148 +      </condition>
   1.149 +
   1.150 +      <pathconvert property="code.name.base.slashes" setonempty="false">
   1.151 +          <path path="${code.name.base}"/>
   1.152 +          <chainedmapper>
   1.153 +              <flattenmapper/>
   1.154 +              <filtermapper>
   1.155 +                  <replacestring from="." to="/"/>
   1.156 +              </filtermapper>
   1.157 +          </chainedmapper>
   1.158 +      </pathconvert>
   1.159 +      <pathconvert property="code.name.base.dashes" setonempty="false">
   1.160 +          <path path="${code.name.base}"/>
   1.161 +          <chainedmapper>
   1.162 +              <flattenmapper/>
   1.163 +              <filtermapper>
   1.164 +                  <replacestring from="." to="-"/>
   1.165 +              </filtermapper>
   1.166 +          </chainedmapper>
   1.167 +      </pathconvert>
   1.168 +      <property name="public.packages" value="${code.name.base}.*"/>
   1.169 +      <property name="code.name" value="${code.name.base}/1"/>
   1.170 +      <mkdir dir="build/ml/nbms/classes/${code.name.base.slashes}"/>
   1.171 +      <mkdir dir="build/ml/nbms/tmp"/>
   1.172 +      <antcall target="-create-cluster-ml-nbm-metadata"/>
   1.173 +      <antcall target="-create-kit-ml-nbm-metadata"/>
   1.174 +      <property name="is.autoload" value="false"/>
   1.175 +      <property name="is.eager" value="false"/>
   1.176 +      <condition property="module.jar.dir" value="modules">
   1.177 +          <!-- set module.jar.dir property only when building kit NBM - leads to               AutoUpdate-Show-In-Client manifest attribute is set to true -->
   1.178 +          <isset property="is.kit"/>
   1.179 +      </condition>
   1.180 +      <property name="module.jar" value="modules/${code.name.base.dashes}.jar"/>      <mkdir dir="${cluster}/modules"/>
   1.181 +      <jarwithmoduleattributes jarfile="${cluster}/${module.jar}"
   1.182 +          compress="${build.package.compress}"
   1.183 +          index="${build.package.index}"
   1.184 +          manifest="build/ml/nbms/tmp/manifest.mf">
   1.185 +          <fileset dir="build/ml/nbms/classes"/>
   1.186 +      </jarwithmoduleattributes>
   1.187 +      <createmodulexml xmldir="${cluster}/config/Modules">
   1.188 +          <enabled dir="${cluster}">
   1.189 +              <include name="${module.jar}"/>
   1.190 +          </enabled>
   1.191 +      </createmodulexml>
   1.192 +      <patternset id="module.files">
   1.193 +          <!-- include name="${module.jar}"/ -->
   1.194 +          <include name="**/*.jar"/>
   1.195 +          <include name="config/Modules/${code.name.base.dashes}.xml"/>
   1.196 +      </patternset>
   1.197 +      <property name="module.files.toString" refid="module.files"/>
   1.198 +      <echo level="verbose">Basic matching module files (${code.name.base.dashes}): ${module.files.toString}</echo>
   1.199 +      <genlist outputfiledir="${cluster}" module="${module.jar}">
   1.200 +          <fileset dir="${cluster}">
   1.201 +              <patternset refid="module.files"/>
   1.202 +          </fileset>
   1.203 +      </genlist>
   1.204 +      <property name="license.file.override" location="build/ml/nbms/license"/>
   1.205 +      <property name="extra.license.files" value=""/>
   1.206 +      <taskdef name="releasefileslicense" classname="org.netbeans.nbbuild.extlibs.ReleaseFilesLicense" classpath="${nb_all}/nbbuild/nbantext.jar"/>
   1.207 +      <releasefileslicense license="${license.file.override}" standardlicense="${nb_all}/nbbuild/standard-nbm-license.txt" extralicensefiles="${extra.license.files}"/>
   1.208 +      <taskdef name="makenbm" classname="org.netbeans.nbbuild.MakeNBM" classpath="${nb_all}/nbbuild/nbantext.jar"/>
   1.209 +      <property name="nbm_alias" value="nb_ide"/>
   1.210 +      <makenbm file="build/ml/${code.name.base.dashes}.nbm"
   1.211 +               productdir="${cluster}"
   1.212 +               module="${module.jar}"
   1.213 +               homepage="http://translatedfiles.netbeans.org/"
   1.214 +               distribution="http://translatedfiles.netbeans.org/"
   1.215 +               needsrestart="true"
   1.216 +               global="true"
   1.217 +               targetcluster="${one.cluster.dir.ml}"
   1.218 +               releasedate=""
   1.219 +               moduleauthor="">
   1.220 +          <license file="${license.file.override}"/>
   1.221 +          <signature keystore="${keystore}" storepass="${storepass}" alias="${nbm_alias}"/>
   1.222 +      </makenbm>
   1.223 +      <move todir="${netbeans.dest.dir.ml}" file="build/ml/${code.name.base.dashes}.nbm"/>
   1.224 +      <property file="build/ml/cluster-nbms-ml.properties"/>
   1.225 +      <condition property="new.kit.deps" value="${code.name} &gt; ${spec.version}">
   1.226 +          <and>
   1.227 +              <not>
   1.228 +                  <isset property="kit.deps"/>
   1.229 +              </not>
   1.230 +              <not>
   1.231 +                  <isset property="is.kit"/>
   1.232 +              </not>
   1.233 +          </and>
   1.234 +      </condition>
   1.235 +      <condition property="new.kit.deps" value="${kit.deps},${code.name} &gt; ${spec.version}">
   1.236 +          <and>
   1.237 +              <isset property="kit.deps"/>
   1.238 +              <not>
   1.239 +                  <isset property="is.kit"/>
   1.240 +              </not>
   1.241 +          </and>
   1.242 +      </condition>
   1.243 +      <condition property="new.kit.deps" value="${kit.deps}">
   1.244 +          <isset property="is.kit"/>
   1.245 +      </condition>
   1.246 +      <propertyfile file="build/ml/cluster-nbms-ml.properties">
   1.247 +          <entry key="kit.deps" value="${new.kit.deps}"/>
   1.248 +      </propertyfile>
   1.249 +
   1.250 + </target>
   1.251 +
   1.252  </project>