JAL-3445 branch for BSML file reading development
[jalview.git] / buildcore.xml
index f4dff04..1ca110a 100644 (file)
 <project name="JSmol" default="toJs" basedir=".">
-   <property name="site.path" value="site/swingjs" />
-   <property name="core.name" value="_jalview" />
 
+  <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+    <classpath>
+      <pathelement location="./utils/ant-contrib-1.0b3.jar" />
+    </classpath>
+  </taskdef>
 
-   <target name="toJs" id="toJs">
-                       
-       <!-- create a NON svn local directory only containing JS files
+  <target name="build-all-cores" id="build-all-cores" depends="toJs">
+    <foreach target="CallToJs" param="classlist">
+      <path>
+        <fileset dir="./classlists/" includes="*.txt" />
+      </path>
+    </foreach>
+  </target>
+
+  <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">
+    <basename property="core.name.txt" file="${classlist}"/>
+    <propertyregex property="core.name" input="${core.name.txt}" replace="" regexp="\.txt"/>
+    <antcall target="toJs"/>
+  </target>
+
+  <target name="toJs" id="toJs">
+    <!-- sensible defaults for default target -->
+    <property name="site" value="site"/>
+    <property name="site.path" value="${site}/swingjs" />
+    
+       <property name="core.name" value="_jalview" />
+    <property name="classlist"  
+      description="Class list generated by java2script classloader to be bundled into corefile - default is _j2sclasslist.txt" 
+      value="_j2sclasslist.txt" />
+       
+    <property name="core.name.jmol" value="_jvjmol" />
+    <property name="classlist.jmol"  
+      value="_j2sclasslist_jmol.txt" />
+       
+    <!-- create a NON svn local directory only containing JS files
        
        <echo>Deleting the site directory.</echo>
                <delete quiet="true" dir="site" />
     -->
-       
-       <!-- make core files -->
 
-       <echo>creating and compressing core files - warnings are OK; "does not exist" is trouble</echo>
-       <echo>reading core class list from file coreclasses</echo>      
-       <loadresource property="coreclasses">
-       <file file="coreclasses"/>
+       
+       <!-- concatentate the stevesoft files -->
+    <concat destfile="${site.path}/j2s/com/stevesoft/core.js">
+        <fileset dir="${site.path}/j2s/com/stevesoft/pat">
+          <include name="**/*.js" />
+        </fileset>
+    </concat>
+    <antcall target="call-core">
+      <param name="call-core.name" value="_stevesoft" />
+      <param name="call-core.list" value="com/stevesoft/core.js" />
+    </antcall>
+
+
+       <!-- compress the jmol files -->
+    
+       <loadresource property="coreclassesjmol">
+      <file file="${classlist.jmol}"/>
+    </loadresource>
+
+    <antcall target="call-core">
+      <param name="call-core.name" value="${core.name.jmol}" />
+      <param name="call-core.list" value="
+               ${coreclassesjmol}
+               " />
+    </antcall>
+       
+    <!-- make core files -->
+
+    <echo>Building core file '${core.name}' - warnings are OK; "does not exist" is trouble</echo>
+    <echo>Reading core class list from file ${classlist}</echo>
+    <loadresource property="coreclasses">
+      <file file="${classlist}"/>
     </loadresource>
+
+       <!-- removing                   core/coreswingjs.js  -->
+
     <antcall target="call-core">
-        <param name="call-core.name" value="${core.name}" />
-        <param name="call-core.list" value="
-                       core/coreswingjs.js
+      <param name="call-core.name" value="${core.name}" />
+      <param name="call-core.list" value="
                ${coreclasses}
                " />
     </antcall>
-    
-    <echo>......Now copy an html file in site/ and add   core:"core${core.name}",    to the Info block.</echo>         
-    
+    <antcall target="publish-core-template"/>
   </target>
 
+  <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">
+    <!-- TODO: extend to process all html templates -->
+    <property name="template.html" value="jalview_bin_Jalview.html"/>
+    <property name="template.name" value="JalviewJS"/>
 
-         <target name="call-core" id="call-core">
-               <echo>......Creating core${call-core.name}.js</echo>
-               <concat destfile="${site.path}/js/core/tmp.js">
-                       <filelist dir="${site.path}/j2s" files="${call-core.list}" />
-               </concat> 
+    <echo>......Now copying ${site}/${template.html} as ${template.name}_${core.name}.html with core:"${core.name}", added to the Info block.</echo>
+    <copy file="${site}/${template.html}" tofile="${site}/${template.name}_${core.name}.html"/>
+    <replace token="NONE" value="${core.name}" file="${site}/${template.name}_${core.name}.html"/>
 
-               <replace dir="${site.path}/js/core" includes="tmp.js" token="Clazz." value="Clazz_"/>
-               <replace dir="${site.path}/js/core" includes="tmp.js" token="Clazz__" value="Clazz._"/>
-               <echo>......Generating ${site.path}/j2s/core/core${call-core.name}.js</echo>    
-               <concat destfile="${site.path}/j2s/core/core${call-core.name}.js"><filelist dir="${site.path}/js" files="
+  </target>
+
+
+  <target name="call-core" id="call-core">
+    <echo>......Creating core${call-core.name}.js</echo>
+    <concat destfile="${site.path}/js/core/tmp.js">
+      <filelist dir="${site.path}/j2s" files="${call-core.list}" />
+    </concat>
+
+    <replace dir="${site.path}/js/core" includes="tmp.js" token="Clazz." value="Clazz_"/>
+    <replace dir="${site.path}/js/core" includes="tmp.js" token="Clazz__" value="Clazz._"/>
+    <echo>......Generating ${site.path}/j2s/core/core${call-core.name}.js</echo>
+    <concat destfile="${site.path}/j2s/core/core${call-core.name}.js">
+      <filelist dir="${site.path}/js" files="
                        core/coretop2.js
                        core/tmp.js
                        core/corebottom2.js
                        " />
-               </concat>
-               <echo>......Generating ${site.path}/j2s/core/core${call-core.name}.z.js</echo>  
-               <java jar="tools/closure_compiler.jar" fork="true" dir="${site.path}/j2s/core" failonerror="false">
-                       <arg line="--js core${call-core.name}.js --js_output_file core${call-core.name}.z.js" />
-           </java>
-               <delete quiet="true" file="${site.path}/js/core/tmp.js" />
-         </target>
-
-               
-       
+    </concat>
+    <echo>......Generating ${site.path}/j2s/core/core${call-core.name}.z.js</echo>
+    <java jar="tools/closure_compiler.jar" fork="true" dir="${site.path}/j2s/core" failonerror="false">
+      <arg line="--js core${call-core.name}.js --js_output_file core${call-core.name}.z.js" />
+    </java>
+    <delete quiet="true" file="${site.path}/js/core/tmp.js" />
+  </target>
+
+
+
 </project>