Merge branch 'develop' into Jalview-BH/JAL-3026
authorJim Procter <jprocter@issues.jalview.org>
Thu, 19 Jul 2018 15:40:18 +0000 (16:40 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Thu, 19 Jul 2018 15:40:18 +0000 (16:40 +0100)
1  2 
build.xml

diff --combined build.xml
+++ b/build.xml
      <property name="schemaDir" value="schemas" />
      <property name="outputDir" value="classes" unless:set="clover.jar"/>
      <property name="outputDir" value="cloverclasses" if:set="clover.jar"/>
-     <property name="outputDir" value="classes" />
      <property name="packageDir" value="dist" />
      <property name="outputJar" value="jalview.jar" />
      <!-- Jalview Applet JMol Jar Dependency -->
  
    <target name="buildindices" depends="init, prepare" unless="help.uptodate">
      <replace value="${JALVIEW_VERSION}">
 -      <replacetoken><![CDATA[$$Version-Rel$$]]></replacetoken>
 +      <replacetoken>
 +        <![CDATA[$$Version-Rel$$]]>
 +      </replacetoken>
        <fileset dir="${outputDir}/${helpDir}">
          <include name="help.jhm" />
        </fileset>
          </resources>
          <resources os="Mac OS X">
            <fileset dir="${packageDir}">
 -               <include name="quaqua-filechooser-only-8.0.jar"/>
 +            <include name="quaqua-filechooser-only-8.0.jar"/>
              <include name="*quaqua64*.jnilib.jar" />
            </fileset>
          </resources>
      <jnlpf toFile="${jnlpFile}" />
      <!-- add the add-modules j2se attribute for java 9 -->
      <replace file="${jnlpFile}" value="j2se version=&quot;1.8+&quot; initial-heap-size=&quot;${inih}&quot; max-heap-size=&quot;${maxh}&quot; java-vm-args=&quot;--add-modules=java.se.ee --illegal-access=warn&quot;">
 -          <replacetoken>j2se version="1.8+"</replacetoken>
 +      <replacetoken>j2se version="1.8+"</replacetoken>
      </replace>
    </target>
  
    <!-- each replacetoken CDATA body must be on one line - 
         otherwise the pattern doesn't match -->
    <replace value="${JALVIEW_VERSION}">
 -    <replacetoken><![CDATA[$$Version-Rel$$]]></replacetoken>
 +    <replacetoken>
 +      <![CDATA[$$Version-Rel$$]]>
 +    </replacetoken>
      <fileset dir="_sourcedist">
        <include name="**/*" />
      </fileset>
    </replace>
    <replace dir="_sourcedist" value="${build.year}">
 -    <replacetoken><![CDATA[$$Year-Rel$$]]></replacetoken>
 +    <replacetoken>
 +      <![CDATA[$$Year-Rel$$]]>
 +    </replacetoken>
      <fileset dir="_sourcedist">
        <include name="**/*" />
      </fileset>
    <javac srcdir="utils" destdir="utils" includes="HelpLinksChecker.java"/>
    <java fork="true" dir="${helpDir}" classpath="utils" classname="HelpLinksChecker" failonerror="true">
      <arg file="${helpDir}"/>
 -    <arg value="-nointernet"/>
 +    <arg value="-nointernet" />
    </java>
  </target>
 +
 +<target name="eclipse-install" depends="init,prepare">
 +
 +  <property name="eclipseTempFile" value="eclipse-jee-oxygen-R-linux-gtk-x86_64.tar.gz"/>
 +  <property name="eclipseInstallURL" value="http://mirror.csclub.uwaterloo.ca/eclipse/technology/epp/downloads/release/oxygen/R/eclipse-jee-oxygen-R-linux-gtk-x86_64.tar.gz"/>
 +  <property name="java2scriptURL" value="https://github.com/BobHanson/java2script/blob/master/sources/net.sf.j2s.core/dist/dropins/net.sf.j2s.core.jar?raw=true"/>
 +
 +  <get url="${eclipseInstallURL}" dest="${eclipseTempFile}"/>
 +  <untar compression="gzip" src="${eclipseTempFile}" dest="${eclipse-inst}"/>
 +
 +  <!-- not needed since we ship transpiler with source
 +    <get url="${java2scriptURL}" dest="eclipse-inst/dropins/net.sf.j2s.core.jar" /> -->
 +
 +</target>
 +
 +<target name="build-site" depends="init,prepare,compile-site,unzip-to-site">
 +  <!-- closure compile -->
 +  <!-- tarball -->
 +  <tar compression="gzip" destfile="site.tar.gz">
 +    <tarfileset dir="site" />
 +  </tar>
 +</target>
 +<target name="prepare-site" depends="init,prepare">
 +  <property name="swingjsdir" value="swingjs"/>
 +  <property name="eclipse-inst" value="/home/bamboo/buildtools/eclipse/eclipse-js"/>
 +  <property name="eclipse-exec" value="${eclipse-inst}/eclipse"/>
 +  <property name="site" value="site"/>
 +  <!-- where the eclipse js workspace has been initialised -->
 +  <property name="eclipse-work" value="/home/bamboo/buildtools/eclipse/eclipse-js-workspace"/>
 +  <!-- git repository linked to project in workspace -->
 +  <property name="eclipse-workrepo" value="/home/bamboo/buildtools/eclipse/eclipse-js-workspace/jalview-js"/>
 +</target>
 +  <target name="clean-site" depends="prepare-site">
 +    <delete dir="${eclipse-workrepo}/${site}"/>
 +    <mkdir dir="${eclipse-workrepo}/${site}"/>
 +  </target>
 +<target name="compile-site" depends="prepare-site,clean-site">
 +  <!-- update transpiler -->
 +  <copy file="${swingjsdir}/net.sf.j2s.core.jar" todir="${eclipse-inst}/dropins" overwrite="true" failonerror="true"/>
 +  <!-- update the git repo linked to the eclipse workspace -->
 +  <exec executable="/usr/bin/git" outputproperty="git.commit" failifexecutionfails="true">
 +    <arg value="rev-parse" />
 +    <arg value="--short" />
 +    <arg value="HEAD" />
 +  </exec>
 +  <!-- update and checkout the same commit in the workspace project -->
 +  <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
 +    <arg value="reset" />
 +    <arg value="--hard" />
 +  </exec>
 +  <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
 +      <arg value="pull" />
 +  </exec>
 +  <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
 +    <arg value="checkout" />
 +    <arg value="${git.commit}" />
 +  </exec>
 +  <!-- custom classpath for .js builds -->
 +  <copy file=".classpath.js" tofile="${eclipse-workrepo}/.classpath" overwrite="true"/>
 +  <!-- clean eclipse log -->
 +  <delete file="${eclipse-work}/.metadata/.log"/>
 +    
 +  <!-- execute the eclipse build - the build may fail but valid javascript may still be produced, so we ignore return codes -->
 +  <exec executable="${eclipse-exec}" failonerror="no">
 +    <arg value="-nosplash"/>
 +    <arg value="--launcher.suppressErrors"/>
 +    <arg value="-application"/>
 +    <arg value="org.eclipse.jdt.apt.core.aptBuild"/>
 +    <arg value="-data"/>
 +    <arg value="${eclipse-work}"/>
 +  </exec>
 +  <!-- report log -->
 +  <exec executable="/bin/cat">
 +    <arg value="${eclipse-work}/.metadata/.log"/>
 +  </exec>
 +  <!-- TODO: run jslint and something else here to check we have a complete set of .js files for java -->
 +  <!-- possibly compare timestamps between .js files and their mate in source - any newer or not present triggers a new build -->
 +  <!-- <mkdir dir="${packageDir}/${site}" /> -->
 +  <!--   <property name="swingjs.zipurl" value="https://github.com/BobHanson/java2script/blob/master/sources/net.sf.j2s.java.core/dist/SwingJS-site.zip?raw=true" /> -->
 +
 +  <!-- and reset the .classpath -->
 +  <exec executable="/usr/bin/git" failifexecutionfails="true" dir="${eclipse-workrepo}">
 +    <arg value="checkout" />
 +    <arg value="${git.commit}"/>
 +    <arg value="--"/>
 +    <arg value=".classpath" />
 +  </exec>
 +
 +  <!-- finally copy artefacts from eclipse project checkout to the build site -->
 +  <copy todir="${site}">
 +    <fileset dir="${eclipse-workrepo}/site"/>
 +  </copy>
 +</target>
 +<target name="unzip-to-site" depends="prepare-site">
 +  <property name="swingjs.zip" value="${swingjsdir}/SwingJS-site.zip" />
 +  <unzip dest="${site}/" overwrite="true">
 +    <fileset dir="libjs">
 +      <include name="*.zip" />
 +    </fileset>
 +  </unzip>
 +  <copy overwrite="true" todir="${site}/swingjs/j2s/">
 +    <fileset dir="${resourceDir}">
 +      <include name="**"/>
 +    </fileset>
 +  </copy>
 +
 +  <!-- copy test files into place in site -->
 +  <copy todir="${site}/examples">
 +    <fileset dir="examples">
 +      <include name="*.*"/>
 +    </fileset>
 +  </copy>
 +  <!-- lastly, update SwingJS -->
 +  <unzip dest="${site}/" overwrite="true">
 +    <fileset dir="${swingjsdir}">
 +      <include name="SwingJS-site.zip"/>
 +    </fileset>
 +  </unzip>
 +</target>
  </project>