<?xml version="1.0" encoding="UTF-8"?>

<project name="GlueGenTest" default="default" basedir=".">

    <description>Tests GlueGen</description>

    <condition property="rootrel.build" value="build">
      <not>
        <isset property="rootrel.build"/>
      </not>
    </condition>

    <property name="gluegen.root"   value="../../../../.." />
    <property name="src.dir"        value="${gluegen.root}/${rootrel.build}/test/gensrc/java" />
    <property name="build.dir"      value="${gluegen.root}/${rootrel.build}/test/build" />

    <!-- Pull in GlueGen cpptasks build file -->
    <import file="${gluegen.root}/make/gluegen-cpptasks.xml" />

    <target name="compile.java">
        
        <echo message=" - - - compiling java files - - - "/>

        <property name="build.dir.java" value="${build.dir}/classes"/>
        <property name="tools.jar" value="${java.home}/../lib/tools.jar"/>

        <echo message="src: ${src.dir} "/>
        <echo message="build: ${build.dir.java} "/>

        <mkdir dir="${build.dir.java}"/>

        <javac destdir="${build.dir.java}" source="1.5" failonerror="true" debug="true" debuglevel="lines,vars,source">
            <src path="${src.dir}"/>
            <classpath path="${gluegen.root}/${rootrel.build}/classes:${src.dir}:${gluegen.root}/${rootrel.build}/antlr-3.2.jar:${gluegen.root}/make/lib/junit.jar:${tools.jar}:${ant.core.lib}"/>
        </javac>

        <echo message=" - - - java files compiled - - - "/>

    </target>

    <target name="compile.native" depends="c.configure">

        <echo message=" - - - compiling natives - - - "/>

        <property name="obj.dir" value="${build.dir}/obj"/>
        <property name="natives.dir" value="${build.dir}/natives"/>

        <property name="output.lib.name" value="rofl"/>
        <property name="obj.dir" value="${obj.dir}/${output.lib.name}"/>

        <property name="c.compiler.optimise" value="none"/>
        <property name="c.compiler.debug" value="false"/>

        <mkdir dir="${obj.dir}" />
        <mkdir dir="${natives.dir}" />

        <cc outtype="shared"
            objdir="${obj.dir}"
            outfile="${natives.dir}/${output.lib.name}"
            optimize="${c.compiler.optimise}"
            debug="${c.compiler.debug}"
            multithreaded="true"
            exceptions="false"
            rtti="false"
            failonerror="true">

            <fileset dir="${gluegen.root}/test/junit/com/jogamp/gluegen" includes="*.c"/>

            <compiler extends="${compiler.cfg.id}" >
                <includepath path="${java.includes.dir}"/>
                <includepath path="${java.includes.dir.platform}"/>
                <includepath path="${gluegen.root}/test/junit/com/jogamp/gluegen"/>
            </compiler>

            <linker extends="${linker.cfg.id}">

            </linker>
        </cc>

        <echo message=" - - - natives compiled - - - "/>

        <copy todir="${natives.dir}">
            <fileset dir="${gluegen.root}/${rootrel.build}/obj">
                <include name="*.so"/>
            </fileset>
        </copy>

    </target>

    <target name="c.configure" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.setup.compiler">
        <property name="compiler.cfg.id" value="${compiler.cfg.id.base}" />
        <property name="linker.cfg.id"   value="${linker.cfg.id.base}" />
    </target>

</project>
