SwingJS transpiler to 3.2.5.v1 (fixed java.util.stream)
[jalview.git] / buildcore.xml
1 <project name="JSmol" default="toJs" basedir=".">
2
3   <taskdef resource="net/sf/antcontrib/antcontrib.properties">
4     <classpath>
5       <pathelement location="./utils/ant-contrib-1.0b3.jar" />
6     </classpath>
7   </taskdef>
8
9   <target name="build-all-cores" id="build-all-cores" depends="toJs">
10     <foreach target="CallToJs" param="classlist">
11       <path>
12         <fileset dir="./classlists/" includes="*.txt" />
13       </path>
14     </foreach>
15   </target>
16
17   <target name="CallToJs" id="CallToJs" description="Don't call this directly - used by build-all-cores to configure the toJs task for each set of classes in classlist">
18     <basename property="core.name.txt" file="${classlist}"/>
19     <propertyregex property="core.name" input="${core.name.txt}" replace="" regexp="\.txt"/>
20     <antcall target="toJs"/>
21   </target>
22
23   <target name="toJs" id="toJs">
24     <!-- sensible defaults for default target -->
25     <property name="site" value="site"/>
26     <property name="site.path" value="${site}/swingjs" />
27     
28         <property name="core.name" value="_jalview" />
29     <property name="classlist"  
30       description="Class list generated by java2script classloader to be bundled into corefile - default is _j2sclasslist.txt" 
31       value="_j2sclasslist.txt" />
32         
33     <property name="core.name.jmol" value="_jvjmol" />
34     <property name="classlist.jmol"  
35       value="_j2sclasslist_jmol.txt" />
36         
37     <!-- create a NON svn local directory only containing JS files
38         
39         <echo>Deleting the site directory.</echo>
40                 <delete quiet="true" dir="site" />
41     -->
42
43         
44         <!-- concatentate the stevesoft files -->
45     <concat destfile="${site.path}/j2s/com/stevesoft/core.js">
46         <fileset dir="${site.path}/j2s/com/stevesoft/pat">
47           <include name="**/*.js" />
48         </fileset>
49     </concat>
50     <antcall target="call-core">
51       <param name="call-core.name" value="_stevesoft" />
52       <param name="call-core.list" value="com/stevesoft/core.js" />
53     </antcall>
54
55
56         <!-- compress the jmol files -->
57     
58         <loadresource property="coreclassesjmol">
59       <file file="${classlist.jmol}"/>
60     </loadresource>
61
62     <antcall target="call-core">
63       <param name="call-core.name" value="${core.name.jmol}" />
64       <param name="call-core.list" value="
65                 ${coreclassesjmol}
66                 " />
67     </antcall>
68         
69     <!-- make core files -->
70
71     <echo>Building core file '${core.name}' - warnings are OK; "does not exist" is trouble</echo>
72     <echo>Reading core class list from file ${classlist}</echo>
73     <loadresource property="coreclasses">
74       <file file="${classlist}"/>
75     </loadresource>
76
77         <!-- removing                   core/coreswingjs.js  -->
78
79     <antcall target="call-core">
80       <param name="call-core.name" value="${core.name}" />
81       <param name="call-core.list" value="
82                 ${coreclasses}
83                 " />
84     </antcall>
85     <antcall target="publish-core-template"/>
86   </target>
87
88   <target name="publish-core-template" id="publish-core-template" description="Creates a new file ${template.name}_${core.name} from ${template.html} in ${site} which include core file ${core.name} in the Info block">
89     <!-- TODO: extend to process all html templates -->
90     <property name="template.html" value="jalview_bin_Jalview.html"/>
91     <property name="template.name" value="JalviewJS"/>
92
93     <echo>......Now copying ${site}/${template.html} as ${template.name}_${core.name}.html with core:"${core.name}", added to the Info block.</echo>
94     <copy file="${site}/${template.html}" tofile="${site}/${template.name}_${core.name}.html"/>
95     <replace token="NONE" value="${core.name}" file="${site}/${template.name}_${core.name}.html"/>
96
97   </target>
98
99
100   <target name="call-core" id="call-core">
101     <echo>......Creating core${call-core.name}.js</echo>
102     <concat destfile="${site.path}/js/core/tmp.js">
103       <filelist dir="${site.path}/j2s" files="${call-core.list}" />
104     </concat>
105
106     <replace dir="${site.path}/js/core" includes="tmp.js" token="Clazz." value="Clazz_"/>
107     <replace dir="${site.path}/js/core" includes="tmp.js" token="Clazz__" value="Clazz._"/>
108     <echo>......Generating ${site.path}/j2s/core/core${call-core.name}.js</echo>
109     <concat destfile="${site.path}/j2s/core/core${call-core.name}.js">
110       <filelist dir="${site.path}/js" files="
111                         core/coretop2.js
112                         core/tmp.js
113                         core/corebottom2.js
114                         " />
115     </concat>
116     <echo>......Generating ${site.path}/j2s/core/core${call-core.name}.z.js</echo>
117     <java jar="tools/closure_compiler.jar" fork="true" dir="${site.path}/j2s/core" failonerror="false">
118       <arg line="--js core${call-core.name}.js --js_output_file core${call-core.name}.z.js" />
119     </java>
120     <delete quiet="true" file="${site.path}/js/core/tmp.js" />
121   </target>
122
123
124
125 </project>