build.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <project name="build installers" default="build" basedir=".">
  2. <property file="${basedir}/build.properties"/>
  3. <property file="${basedir}/custom.properties"/>
  4. <target name="build" depends="init,-build,-generate-bundles,post-build"/>
  5. <target name="init" depends="-clean,-checkout,-init,-init-properties,-post-init-clean"/>
  6. <target name="-clean-cvs" unless="no.checkout">
  7. <delete dir="${nbi.all.dir}"/>
  8. </target>
  9. <target name="-clean" depends="-clean-cvs" unless="no.clean">
  10. <delete dir="${output.dir}"/>
  11. <delete dir="${nbi.ext.dir}/products/helloworld/build"/>
  12. <delete dir="${nbi.ext.dir}/products/helloworld/dist"/>
  13. <!--normen-->
  14. <delete dir="${nbi.ext.dir}/products/jdk/build"/>
  15. <delete dir="${nbi.ext.dir}/products/jdk/dist"/>
  16. <delete dir="${nbi.ext.dir}/products/blender-osx/build"/>
  17. <delete dir="${nbi.ext.dir}/products/blender-osx/dist"/>
  18. <delete dir="${nbi.ext.dir}/products/blender-win32/build"/>
  19. <delete dir="${nbi.ext.dir}/products/blender-win32/dist"/>
  20. <delete dir="${nbi.ext.dir}/products/blender-win64/build"/>
  21. <delete dir="${nbi.ext.dir}/products/blender-win64/dist"/>
  22. <delete dir="${nbi.ext.dir}/products/blender-linux32/build"/>
  23. <delete dir="${nbi.ext.dir}/products/blender-linux32/dist"/>
  24. <delete dir="${nbi.ext.dir}/products/blender-linux64/build"/>
  25. <delete dir="${nbi.ext.dir}/products/blender-linux64/dist"/>
  26. <delete dir="${nbi.ext.dir}/engine/build"/>
  27. <delete dir="${nbi.ext.dir}/engine/dist"/>
  28. <!--<delete dir="${basedir}/cache"/>-->
  29. </target>
  30. <target name="post-build">
  31. <delete dir="${output.dir}/registry-temp"/>
  32. </target>
  33. <target name="-checkout">
  34. <copy todir="${nbi.all.dir}/.common">
  35. <fileset dir="${basedir}/.common"/>
  36. </copy>
  37. <copy todir="${nbi.ext.dir}">
  38. <fileset dir="${basedir}/ext">
  39. </fileset>
  40. </copy>
  41. </target>
  42. <target name="-init">
  43. <taskdef
  44. name="if"
  45. classpath="${custom.tasks.cls}"
  46. classname="org.netbeans.installer.infra.build.ant.If"/>
  47. <taskdef
  48. name="for-each"
  49. classpath="${custom.tasks.cls}"
  50. classname="org.netbeans.installer.infra.build.ant.ForEach"/>
  51. <taskdef
  52. name="set"
  53. classpath="${custom.tasks.cls}"
  54. classname="org.netbeans.installer.infra.build.ant.SetProperty"/>
  55. <taskdef
  56. name="create-bundle"
  57. classpath="${custom.tasks.cls}"
  58. classname="org.netbeans.installer.infra.build.ant.registries.CreateBundle"/>
  59. <delete file="${temp.file}"/>
  60. </target>
  61. <target name="-init-properties">
  62. <echo file="${nbi.all.dir}/environment.tmp" encoding="utf-8">
  63. checkout.sources=false
  64. sources.dir=${nbi.all.dir}
  65. cvs.module=ext
  66. release.to.server=false
  67. release.registry.dir=${output.dir}/registry-temp
  68. dont.build.custom.tasks=true
  69. custom.tasks.cls=${custom.tasks.cls}
  70. build.engine=false
  71. engine.dist.file.name=nbi-engine.jar
  72. engine.dist.file=${nbi.core.dir}/infra/build/engine/dist/nbi-engine.jar
  73. packaged.data.dir=${basedir}/cache/packaged
  74. downloads.cache.dir=${basedir}/cache/raw
  75. jarsigner.enabled=${jarsigner.enabled}
  76. </echo>
  77. <replace file="${nbi.all.dir}/environment.tmp" token="\" value="/" encoding="utf-8"/>
  78. <native2ascii src="${nbi.all.dir}" dest="${nbi.all.dir}" encoding="utf-8" includes="environment.tmp" ext=".properties"/>
  79. </target>
  80. <target name="-post-init-clean">
  81. <delete dir="${basedir}/cache/raw"/>
  82. </target>
  83. <target name="-build">
  84. <delete dir="${output.dir}"/>
  85. <mkdir dir="${output.dir}"/>
  86. <mkdir dir="${bundles.release.dir}"/>
  87. <mkdir dir="${output.dir}/components"/>
  88. <property name="engine.dist.file.name" value="nbi-engine.jar"/>
  89. <echo message="BUILDING HELLOWORLD EXT ENGINE =================================="/>
  90. <ant dir="${nbi.ext.dir}/infra/build/engine" target="release-all">
  91. <property
  92. name="basedir"
  93. value="${nbi.ext.dir}/infra/build/engine"/>
  94. <property
  95. name="environment.properties"
  96. value="${environment.properties}"/>
  97. <property
  98. name="core.engine.dist.file"
  99. value="${nbi.engine.jar}"/>
  100. </ant>
  101. <echo message="BUILDING HELLOWORLD PRODUCT =================================="/>
  102. <ant dir="${nbi.ext.dir}/infra/build/products/helloworld" target="release-all">
  103. <property
  104. name="basedir"
  105. value="${nbi.ext.dir}/infra/build/products/helloworld"/>
  106. <property
  107. name="environment.properties"
  108. value="${environment.properties}"/>
  109. <property
  110. name="dist.dir"
  111. value="${output.dir}/components"/>
  112. <property
  113. name="release.parent.uid"
  114. value=""/>
  115. <property
  116. name="release.parent.version"
  117. value=""/>
  118. <property
  119. name="release.parent.platforms"
  120. value=""/>
  121. <property
  122. name="engine.dist.file"
  123. value="${output.dir}/registry-temp/engine.jar"/>
  124. </ant>
  125. <!--normen-->
  126. <echo message="BUILDING MAC JDK PRODUCT =================================="/>
  127. <ant dir="${nbi.ext.dir}/infra/build/products/jdk" target="release-all">
  128. <property name="basedir" value="${nbi.ext.dir}/infra/build/products/jdk"/>
  129. <property name="environment.properties" value="${environment.properties}"/>
  130. <property name="dist.dir" value="${output.dir}/components"/>
  131. <property name="release.parent.uid" value=""/>
  132. <property name="release.parent.version" value=""/>
  133. <property name="release.parent.platforms" value=""/>
  134. <property name="engine.dist.file" value="${output.dir}/registry-temp/engine.jar"/>
  135. </ant>
  136. <!--normen-build blender for platforms-->
  137. <for-each property="platform" list="${target.platforms}" separator=" ">
  138. <echo message="BUILDING BLENDER ${platform} PRODUCT =================================="/>
  139. <ant dir="${nbi.ext.dir}/infra/build/products/blender-${platform}" target="release-all">
  140. <property name="basedir" value="${nbi.ext.dir}/infra/build/products/blender-${platform}"/>
  141. <property name="environment.properties" value="${environment.properties}"/>
  142. <property name="dist.dir" value="${output.dir}/components"/>
  143. <property name="release.parent.uid" value=""/>
  144. <property name="release.parent.version" value=""/>
  145. <property name="release.parent.platforms" value=""/>
  146. <property name="engine.dist.file" value="${output.dir}/registry-temp/engine.jar"/>
  147. </ant>
  148. </for-each>
  149. </target>
  150. <target name="-generate-bundles">
  151. <for-each property="platform" list="${target.platforms}" separator=" ">
  152. <condition property="bundle.extention.${platform}" value="exe">
  153. <contains string="${platform}" substring="windows"/>
  154. </condition>
  155. <condition property="bundle.extention.${platform}" value="sh">
  156. <or>
  157. <contains string="${platform}" substring="linux"/>
  158. <contains string="${platform}" substring="solaris"/>
  159. </or>
  160. </condition>
  161. <condition property="bundle.extention.${platform}" value="zip">
  162. <contains string="${platform}" substring="macosx"/>
  163. </condition>
  164. <set property="bundle.extention" source="bundle.extention.${platform}"/>
  165. <!--normen-->
  166. <!-- Linux installers -->
  167. <if property="platform" value="linux-x86">
  168. <create-bundle root="${output.dir}/registry-temp" platform="${platform}"
  169. target="${bundles.release.dir}/${bundle.files.prefix}-${platform}.${bundle.extention}">
  170. <component uid="${main.product.uid}" version="${main.product.version}"/>
  171. <component uid="blender" version="${main.product.version}"/>
  172. <property name="nbi.bundled.jvm.file" value="${basedir}/../../jdks/jdk-${platform}.bin"/>
  173. </create-bundle>
  174. </if>
  175. <if property="platform" value="linux-x64">
  176. <create-bundle root="${output.dir}/registry-temp" platform="${platform}"
  177. target="${bundles.release.dir}/${bundle.files.prefix}-${platform}.${bundle.extention}">
  178. <component uid="${main.product.uid}" version="${main.product.version}"/>
  179. <component uid="blender" version="${main.product.version}"/>
  180. <property name="nbi.bundled.jvm.file" value="${basedir}/../../jdks/jdk-${platform}.bin"/>
  181. </create-bundle>
  182. </if>
  183. <!-- Windows installers -->
  184. <if property="platform" value="windows-x86">
  185. <create-bundle root="${output.dir}/registry-temp" platform="${platform}"
  186. target="${bundles.release.dir}/${bundle.files.prefix}-${platform}.${bundle.extention}">
  187. <component uid="${main.product.uid}" version="${main.product.version}"/>
  188. <component uid="blender" version="${main.product.version}"/>
  189. <property name="nbi.bundled.jvm.file" value="${basedir}/../../jdks/jdk-${platform}.exe"/>
  190. </create-bundle>
  191. </if>
  192. <if property="platform" value="windows-x64">
  193. <create-bundle root="${output.dir}/registry-temp" platform="${platform}"
  194. target="${bundles.release.dir}/${bundle.files.prefix}-${platform}.${bundle.extention}">
  195. <component uid="${main.product.uid}" version="${main.product.version}"/>
  196. <component uid="blender" version="${main.product.version}"/>
  197. <property name="nbi.bundled.jvm.file" value="${basedir}/../../jdks/jdk-${platform}.exe"/>
  198. </create-bundle>
  199. </if>
  200. <!-- Mac installer -->
  201. <if property="platform" value="macosx">
  202. <create-bundle root="${output.dir}/registry-temp" platform="${platform}"
  203. target="${bundles.release.dir}/${bundle.files.prefix}-${platform}.${bundle.extention}">
  204. <component uid="${main.product.uid}" version="${main.product.version}"/>
  205. <component uid="blender" version="${main.product.version}"/>
  206. <component uid="jdk" version="${main.product.version}"/>
  207. <!--property name="nbi.bundled.jvm.file" value="${basedir}/../../jdks/mac_jdk.bin"/-->
  208. </create-bundle>
  209. </if>
  210. <if property="bundle.extention" value="zip">
  211. <antcall target="zip-to-tgz">
  212. <param name="input.file" value="${bundles.release.dir}/${bundle.files.prefix}-${platform}.zip"/>
  213. <param name="output.file" value="${bundles.release.dir}/${bundle.files.prefix}-${platform}.tgz"/>
  214. </antcall>
  215. <delete file="${bundles.release.dir}/${bundle.files.prefix}-${platform}.zip"/>
  216. </if>
  217. </for-each>
  218. <echo>Installer(s) for [${target.platforms}] are available at ${bundles.release.dir}</echo>
  219. </target>
  220. <target name="zip-to-tgz">
  221. <set property="tar.tmpdir"
  222. value="${bundles.release.dir}/tempdir"/>
  223. <mkdir dir="${tar.tmpdir}"/>
  224. <unzip
  225. src="${input.file}"
  226. dest="${tar.tmpdir}"/>
  227. <tar tarfile="${output.file}"
  228. compression="gzip">
  229. <tarfileset dir="${tar.tmpdir}" mode="644">
  230. <include name="**/*.*"/>
  231. <exclude name="**/executable"/>
  232. </tarfileset>
  233. <tarfileset dir="${tar.tmpdir}" mode="755">
  234. <include name="**/executable"/>
  235. </tarfileset>
  236. </tar>
  237. <delete dir="${tar.tmpdir}"/>
  238. </target>
  239. </project>