blob: e8fd964367c42614f550406374e1d84bee9b6b87 [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project name="marmotinni" default="main" basedir=".">
<property name="test.file" value="Royale/framework/org/apache/royale/html/TextButton/TextButton.mxml" />
<property name="test.class" value="org.apache.royale.html.textButton.TextButton" />
<property file="build.properties" />
<!-- Put 'teardown' option under command line control (-Ddo.teardown=) -->
<property name="do.teardown" value="true" />
<condition property="do_teardown">
<istrue value="${do.teardown}" />
</condition>
<!-- Constants -->
<property name="mxmlc.dir" value="../../royale-compiler/compiler.jx/bin" />
<property name="player.version" value="11.1" />
<property name="sdk.dir" value="../../royale-sdk" />
<property name="output.goog.dir.name" value="library" />
<property name="output.intermediate.dir.name" value="js-debug" />
<property name="output.release.dir.name" value="js-release" />
<property name="output.root.dir.name" value="bin" />
<property name="output.sdk.dir.name" value="org" />
<property name="output.dir" value="${basedir}/temp" />
<!-- Property/constant dependent settings -->
<!-- 1st -->
<property name="output.goog.dir" value="${output.intermediate.dir.name}/${output.goog.dir.name}" /> <!-- js-debug/library -->
<property name="output.js.root.dir" value="${output.dir}/${output.root.dir.name}" /> <!-- [path]/bin -->
<property name="output.sdk.dir.name" value="${output.intermediate.dir.name}/${output.sdk.dir.name}" /> <!-- js-debug/org -->
<property name="project.main" value="${basedir}/tests/${test.file}" />
<!-- 2nd -->
<property name="output.js.intermediate.dir" value="${output.js.root.dir}/${output.intermediate.dir.name}" /> <!-- [path]/bin/js-debug -->
<property name="output.js.release.dir" value="${output.js.root.dir}/${output.release.dir.name}" /> <!-- [path]/bin/js-release -->
<!-- host_os_name (formerly real_os_name) is the machine which is compiling. -->
<condition property="host_os_name" value="mac" >
<os family="mac" />
</condition>
<condition property="short_os_name" value="mac" >
<os family="mac" />
</condition>
<condition property="host_os_name" value="windows" >
<os family="windows" />
</condition>
<condition property="short_os_name" value="win" >
<os family="windows" />
</condition>
<condition property="host_os_name" value="Linux" >
<os name="Linux" />
</condition>
<!--=====================================================================-->
<!-- Main -->
<!--=====================================================================-->
<target name="main" depends="get_os, setup, run, teardown">
<echo>All done now, thank you ;-)</echo>
</target>
<!--=====================================================================-->
<!-- Test -->
<!--=====================================================================-->
<target name="test" depends="test_compile">
<echo>Testing...</echo>
<java classname="${param.test.class}" outputproperty="stdout" classpath="${basedir}/java/bin" fork="true" failonerror="yes">
<arg value="url=${param.test.url}" />
<classpath>
<pathelement location="${basedir}/java/lib/selenium/selenium-java-2.48.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/apache-mime4j-0.6.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/bsh-2.0b4.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/cglib-nodep-2.1_3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-codec-1.10.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-collections-3.2.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-el-1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-exec-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-io-2.4.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-jxpath-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-lang3-3.4.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-logging-1.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/cssparser-0.9.16.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/gson-2.3.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/guava-18.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/hamcrest-core-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/hamcrest-library-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/htmlunit-2.18.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/htmlunit-core-js-2.17.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/httpclient-4.5.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/httpcore-4.4.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/httpmime-4.5.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jasper-compiler-5.5.15.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jasper-compiler-jdt-5.5.15.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jasper-runtime-5.5.15.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/javax.servlet-api-3.1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jcommander-1.29.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-continuation-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-http-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-io-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-jmx-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-security-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-server-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-servlet-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-servlets-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-util-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jna-4.1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jna-platform-4.1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jsp-api-2.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/junit-4.12.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/nekohtml-1.9.22.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/netty-3.5.7.Final.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/phantomjsdriver-1.2.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/sac-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/serializer-2.7.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/testng-6.9.6.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/websocket-api-9.2.13.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/websocket-client-9.2.13.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/websocket-common-9.2.13.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/xalan-2.7.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/xercesImpl-2.11.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/xml-apis-1.4.01.jar"/>
</classpath>
</java>
<fail message="The test '${param.test.class}' reports: ${stdout}.">
<condition>
<not>
<equals arg1="${stdout}" arg2="success" />
</not>
</condition>
</fail>
<echo>The test '${param.test.class}' passed.</echo>
</target>
<target name="test_clean">
<delete dir="${basedir}/java/bin"/>
</target>
<target name="test_prepare" depends="test_clean">
<mkdir dir="${basedir}/java/bin"/>
</target>
<target name="test_compile" depends="test_prepare">
<javac srcdir="${basedir}/java/src/org/apache.royale/html/textButton" destdir="${basedir}/java/bin" debug="off" optimize="on">
<classpath>
<pathelement location="${basedir}/java/lib/selenium/selenium-java-2.48.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/apache-mime4j-0.6.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/bsh-2.0b4.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/cglib-nodep-2.1_3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-codec-1.10.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-collections-3.2.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-el-1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-exec-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-io-2.4.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-jxpath-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-lang3-3.4.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/commons-logging-1.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/cssparser-0.9.16.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/gson-2.3.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/guava-18.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/hamcrest-core-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/hamcrest-library-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/htmlunit-2.18.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/htmlunit-core-js-2.17.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/httpclient-4.5.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/httpcore-4.4.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/httpmime-4.5.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jasper-compiler-5.5.15.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jasper-compiler-jdt-5.5.15.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jasper-runtime-5.5.15.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/javax.servlet-api-3.1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jcommander-1.29.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-continuation-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-http-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-io-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-jmx-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-security-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-server-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-servlet-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-servlets-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jetty-util-9.2.3.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jna-4.1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jna-platform-4.1.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/jsp-api-2.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/junit-4.12.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/nekohtml-1.9.22.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/netty-3.5.7.Final.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/phantomjsdriver-1.2.1.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/sac-1.3.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/serializer-2.7.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/testng-6.9.6.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/websocket-api-9.2.13.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/websocket-client-9.2.13.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/websocket-common-9.2.13.v20150730.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/xalan-2.7.2.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/xercesImpl-2.11.0.jar"/>
<pathelement location="${basedir}/java/lib/selenium/libs/xml-apis-1.4.01.jar"/>
</classpath>
</javac>
</target>
<!--=====================================================================-->
<!-- Run -->
<!--=====================================================================-->
<target name="run" depends="run_setup">
<antcall target="mxmlc">
<param name="param.file" value="${project.main}"/>
<param name="param.js.sdk" value="${royale.lib}"/>
<param name="param.type" value="ROYALE"/>
<param name="param.lib" value="${royale.ui.swc}"/>
</antcall>
<move file="${output.js.intermediate.dir}/deps.js" tofile="${output.js.intermediate.dir}/${output.goog.dir.name}/closure/goog/deps.js" />
<antcall target="test">
<param name="param.test.class" value="${test.class}"/>
<param name="param.test.url" value="file://localhost/Users/erik/Documents/ApacheRoyale/git/royale-asjs/marmotinni/temp/bin/js-release/index.html"/>
</antcall>
<antcall target="run_teardown" />
</target>
<target name="run_setup">
<echo>This is the run setup.</echo>
</target>
<target name="run_teardown" depends="test_clean" if="do_teardown">
<echo>This is the run teardown.</echo>
<!-- Restore original deps.js (is overwritten by previous run) -->
<copy file="${output.js.root.dir}/deps-orig.js" tofile="${output.js.intermediate.dir}/${output.goog.dir.name}/closure/goog/deps.js" overwrite="true" />
<!-- delete all files created during the run, but leave the libs in place -->
<delete includeemptydirs="true">
<fileset dir="${output.js.intermediate.dir}" defaultexcludes="false">
<include name="**/*" />
<exclude name="${output.goog.dir.name}/" />
<exclude name="${output.sdk.dir.name}/" />
</fileset>
</delete>
<delete dir="${output.js.release.dir}" includeemptydirs="true" />
</target>
<!--=====================================================================-->
<!-- MXMLC -->
<!--=====================================================================-->
<target name="mxmlc">
<echo>Execute mxmlc.</echo>
<exec executable="${mxmlc.dir}/${mxmlc.exe}">
<env key="PLAYERGLOBAL_HOME" value="${playerglobal.home}" />
<arg value="+playerglobal.version=${player.version}" />
<arg value="-load-config=${sdk.dir}/frameworks/royale-config.xml" />
<arg value="-js-output-type=${param.type}" />
<arg value="-library-path+=${param.lib}" />
<arg value="-sdk-js-lib=${param.js.sdk}" />
<arg value="-closure-lib=${goog.closure.lib}" />
<arg value="${param.file}" />
<arg value="-marmotinni=${output.dir}" />
</exec>
</target>
<!--=====================================================================-->
<!-- Setup -->
<!--=====================================================================-->
<target name="setup" depends="setup_linux, setup_mac, setup_windows">
<echo>This is the actual setup.</echo>
<mkdir dir="${output.js.intermediate.dir}" />
<mkdir dir="${output.js.root.dir}/${output.release.dir.name}" />
<copy todir="${output.js.intermediate.dir}/${output.goog.dir.name}">
<fileset dir="${goog.closure.lib}">
<include name="closure/goog/" />
<include name="third_party/" />
<exclude name="closure/goog/demos/" />
</fileset>
</copy>
<!-- back up original deps.js -->
<copy file="${goog.closure.lib}/closure/goog/deps.js" tofile="${output.js.root.dir}/deps-orig.js" overwrite="true"/>
<copy todir="${output.js.intermediate.dir}/${output.sdk.dir.name}">
<fileset dir="${royale.lib}">
<include name="**/*" />
</fileset>
</copy>
<subant target="main">
<fileset dir="${basedir}/java" includes="downloads.xml"/>
</subant>
</target>
<target name="get_os" >
<condition property="is_mac" value="true" >
<equals arg1="${host_os_name}" arg2="mac" />
</condition>
<condition property="is_win" value="true" >
<or>
<equals arg1="${host_os_name}" arg2="windows" />
<equals arg1="${host_os_name}" arg2="win" />
</or>
</condition>
<condition property="is_linux" value="true" >
<equals arg1="${host_os_name}" arg2="Linux" />
</condition>
</target>
<target name="setup_linux" if="is_linux">
<echo>Doing Linux setup.</echo>
<property name="mxmlc.exe" value="mxmlc"/>
</target>
<target name="setup_mac" if="is_mac">
<echo>Doing Mac setup.</echo>
<property name="mxmlc.exe" value="mxmlc"/>
</target>
<target name="setup_windows" if="is_win">
<echo>Doing Windows setup.</echo>
<property name="mxmlc.exe" value="mxmlc.bat"/>
</target>
<!--=====================================================================-->
<!-- Teardown -->
<!--=====================================================================-->
<target name="teardown" if="do_teardown">
<echo>This is the final teardown.</echo>
<delete includeemptydirs="true">
<fileset dir="${output.dir}" defaultexcludes="false" />
</delete>
</target>
</project>