<?xml version="1.0" ?>
<!--

  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="compiler-jx" default="main" basedir=".">

    <property name="FALCONJX_HOME" location="${basedir}"/>
    
    <pathconvert property="basedir_clean" dirsep="/">
		<path location="${basedir}" />
    </pathconvert>
	
    <!-- The 'env' property contains all the environment variables -->
    <property environment="env"/>
    
    <!-- Properties can be overridden locally by loading a local.properties file -->
    <!-- Java 8 users probably need javadoc.params=-Xdoclint:none -->
    <property file="${basedir}/local.properties"/>
    <property file="${basedir}/../build.properties"/>
    
	<!-- Options for <javac> tasks -->
	<property name="javac.debug" value="true"/>
	<property name="javac.deprecation" value="false"/>
	<property name="javac.src" value="1.6"/>

    <!-- JAR manifest entries -->
    <property name="manifest.sealed" value="false"/>
    <property name="manifest.Implementation-Title" value="Apache Flex Cross-Compiler"/>
    <property name="manifest.Implementation-Version" value="${release.version}"/>
    <property name="manifest.Implementation-Vendor" value="Apache Software Foundation"/>

    <property name="src" value="${basedir_clean}/src/main/java" />
	<property name="lib" value="${basedir_clean}/lib" />
	
	<property name="falcon.basedir" value="${basedir_clean}/../compiler" />
    <property name="falcon.lib.dir" value="${falcon.basedir}/lib" />
	
	<property name="classes.dir" value="${basedir_clean}/target/classes" />
	
	<property name="mxmlc.jar" value="${lib}/mxmlc.jar" />
    <property name="externc.jar" value="${lib}/externc.jar" />
	<property name="compc.jar" value="${lib}/compc.jar" />
	<property name="jsc.jar" value="${lib}/jsc.jar" />
    <property name="asdoc.jar" value="${lib}/asdoc.jar" />

    <!-- env.BUILD_NUMBER is set by Jenkins CI -->
    <condition property="build.number" value="nightly-${env.BUILD_NUMBER}">
        <isset property="env.BUILD_NUMBER"/>
    </condition>
    <property name="build.number" value="0"/>

    <path id="classpath">
        <filelist dir="${falcon.lib.dir}/external">
            <file name="antlr.jar" />
            <file name="log4j-core.jar" />
            <file name="log4j-api.jar" />
        </filelist>
		<filelist dir="${lib}">
			<file name="commons-io.jar" />
            <file name="guava.jar" />
			<file name="flex-tool-api.jar" />
        </filelist>
		<filelist dir="${lib}/google/closure-compiler">
            <file name="compiler.jar" />
        </filelist>
	</path>

	<target name="compile">
		<javac debug="true" deprecation="${javac.deprecation}"
            includes="**/*.java"
            excludes=""
            destdir="${classes.dir}"
            classpathref="classpath"
            source="${javac.src}" target="${javac.src}">
			<src path="${src}" />
			<classpath>
				<pathelement path="${falcon.basedir}/target/classes" />
			</classpath>
		</javac>
	</target>

    <target name="prebuild">
		<mkdir dir="${classes.dir}" />
        <mkdir dir="${classes.dir}/META-INF" />
        <mkdir dir="${lib}/google/closure-compiler" />
        <ant antfile="${basedir}/src/main/resources/downloads.xml" dir="${basedir}" />
    </target>
	
	<target name="main" depends="prebuild,compile">
        
        <property name="jar.classpath" value="commons-io.jar guava.jar ../../lib/external/antlr.jar ../../compiler/lib/external/antlr.jar google/closure-compiler/compiler.jar ../../compiler/lib/compiler.jar ../../lib/compiler.jar ../../lib/external/log4j-api.jar ../../compiler/lib/external/log4j-api.jar ../../lib/external/log4j-core.jar ../../compiler/lib/external/log4j-core.jar" />

        <copy file="${basedir}/../LICENSE.base" tofile="${classes.dir}/META-INF/LICENSE"/>
        <copy file="${basedir}/../NOTICE.jx" tofile="${classes.dir}/META-INF/NOTICE"/>
        
		<echo message="Building ${jsc.jar}" />
		<jar file="${jsc.jar}" basedir="${classes.dir}"
            includes="**/*.properties,org/apache/**/*,com/google/**/*,META-INF/**/*"
			excludes="**/JSDriver*,**/IASNodeAdapter*,org/apache/flex/compiler/internal/parsing/abc/*" >
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Class-Path" value="${jar.classpath}" />
            </manifest>
        </jar>

		<echo message="Building ${mxmlc.jar}" />
		<jar file="${mxmlc.jar}" basedir="${classes.dir}">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
			<manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
				<attribute name="Main-Class" value="org.apache.flex.compiler.clients.MXMLJSC" />
                <attribute name="Class-Path" value="args4j.jar org.json.jar jsc.jar" />
			</manifest>
		</jar>

		<echo message="Building ${compc.jar}" />
		<jar file="${compc.jar}" basedir="${classes.dir}">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
			<manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
				<attribute name="Main-Class" value="org.apache.flex.compiler.clients.COMPJSC" />
                <attribute name="Class-Path" value="jsc.jar" />
			</manifest>
		</jar>

        <echo message="Building ${externc.jar}" />
        <jar file="${externc.jar}" basedir="${classes.dir}">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.compiler.clients.EXTERNC" />
                <attribute name="Class-Path" value="jsc.jar" />
            </manifest>
        </jar>

        <echo message="Building ${asdoc.jar}" />
        <jar file="${asdoc.jar}" basedir="${classes.dir}">
            <include name="META-INF/LICENSE"/>
            <include name="META-INF/NOTICE"/>
            <manifest>
                <attribute name="Sealed" value="${manifest.sealed}"/>
                <attribute name="Implementation-Title" value="${manifest.Implementation-Title}"/>
                <attribute name="Implementation-Version" value="${manifest.Implementation-Version}.${build.number}"/>
                <attribute name="Implementation-Vendor" value="${manifest.Implementation-Vendor}"/>
                <attribute name="Main-Class" value="org.apache.flex.compiler.clients.ASDOCJSC" />
                <attribute name="Class-Path" value="jsc.jar" />
            </manifest>
        </jar>

        <chmod dir="${basedir}/src/assembly" excludes="**/*.bat" perm="+x" />
	</target>

    <target name="test" description="Runs JUnit tests">
        <ant dir="src/test" />
    </target>

    <!--
		Cleanup
	-->
	
    <target name="super-clean" depends="thirdparty-clean,clean" />

    <target name="thirdparty-clean">
        <ant antfile="${basedir}/src/main/resources/downloads.xml" dir="${basedir}" target="clean" />
        <delete dir="${basedir}/target" />
        <delete failonerror="false" includeemptydirs="true">
            <fileset dir="${lib}" />
        </delete>
    </target>

    <target name="clean" >
        <delete dir="${basedir}/target/classes" />
        <delete failonerror="false" includeemptydirs="true">
            <fileset dir="${lib}" >
                <include name="compc.jar" />
                <include name="externc.jar" />
                <include name="mxmlc.jar" />
                <include name="jsc.jar" />
                <include name="asdoc.jar" />
            </fileset>
		</delete>
    </target>

</project>
