<?xml version="1.0"?>

<!--
/* 1. define the following property to change the location of the CG library:
 *
 *    ant -Dcg.home="path-to-cg-installation"
 */
 -->

<!-- Ant file for building native  ogl renderer files for Windows-amd64 -->
<project name="j3d-core native" default="compile">



  <target name="init" depends="init-cg,init-nocg">
    <!-- Create the build directories for win32 -->
    <mkdir dir="${build}/${platform}/${bldType}/native/ogl/objs"/>
    <mkdir dir="${build}/${platform}/${bldType}/bin"/>
    
    <echo message="Executing 64 bit native renderer build [${bldType}]"/>

    <property name="javaInclude"
     location="${java.home}/../include"/>

    <property name="javaWin32Include"
     location="${java.home}/../include/win32"/>

    <property name="oglsrc"     location="${src}/native/ogl"/>
  </target>

  <target name="init-cg" if="build.cg">
    <property name="cflags.cg"  value="-DCOMPILE_CG_SHADERS=1"/>
    <property name="cg.home" location="c:/Program Files/NVIDIA Corporation/Cg"/>
  </target>

  <target name="init-nocg" unless="build.cg">
    <property name="cflags.cg"  value=""/>
    <property name="cg.home" value=""/>
  </target>

  <target name="compile-ogl">
    <!-- Compile the c source files-->
    <exec dir="${build}/${platform}/${bldType}/native/ogl/objs" executable="cl">
	<arg line="-I&quot;${oglsrc}&quot; -I&quot;${javaInclude}&quot; -I&quot;${javaWin32Include}&quot; -I&quot;${javahCoreTarget}&quot; -I&quot;${cg.home}\include&quot; -nologo -MT -W3 -EHsc -wd4996 -Ox -FD ${bldFlag} ${cflags.cg} -c &quot;${oglsrc}/DrawingSurfaceObjectAWT.c&quot; &quot;${oglsrc}/Canvas3D.c&quot; &quot;${oglsrc}/GraphicsContext3D.c&quot; &quot;${oglsrc}/NativeScreenInfo.c&quot; &quot;${oglsrc}/NativeConfigTemplate3D.c&quot; &quot;${oglsrc}/MasterControl.c&quot; &quot;${oglsrc}/GeometryArrayRetained.c&quot; &quot;${oglsrc}/Attributes.c&quot; &quot;${oglsrc}/CgShaderProgram.c&quot; &quot;${oglsrc}/GLSLShaderProgram.c&quot; &quot;${oglsrc}/Lights.c&quot;"/>
    </exec>

    <!-- Create the library file-->
    <exec dir="${build}/${platform}/${bldType}/native/ogl/objs" executable="link">
	<arg line="-nologo -dll -subsystem:windows -pdb:none  -out:j3dcore-ogl.dll DrawingSurfaceObjectAWT.obj  Canvas3D.obj  GraphicsContext3D.obj  NativeScreenInfo.obj  NativeConfigTemplate3D.obj  MasterControl.obj  GeometryArrayRetained.obj  Attributes.obj  CgShaderProgram.obj  GLSLShaderProgram.obj  Lights.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib  shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib delayimp.lib -DELAYLOAD:jawt.dll -LIBPATH:&quot;${java.home}\..\lib&quot; jawt.lib"/>
    </exec>

  </target>


  <target name="compile-ogl-cg" if="build.cg">
    <!-- Compile the c source files-->
    <exec dir="${build}/${platform}/${bldType}/native/ogl/objs" executable="cl">
	<arg line="-I&quot;${oglsrc}&quot; -I&quot;${javaInclude}&quot; -I&quot;${javaWin32Include}&quot; -I&quot;${javahCoreTarget}&quot; -I&quot;${cg.home}\include&quot; -nologo -MT -W3 -EHsc -Ox -FD ${bldFlag} ${cflags.cg} -c &quot;${oglsrc}/CgWrapper.c&quot;"/>
    </exec>

    <!-- Create the library file-->
    <exec dir="${build}/${platform}/${bldType}/native/ogl/objs" executable="link">
	<arg line="-nologo -dll -subsystem:windows -pdb:none -machine:I386 -out:j3dcore-ogl-cg.dll CgWrapper.obj  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib  shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib delayimp.lib -LIBPATH:&quot;${cg.home}\lib&quot; cg.lib cgGL.lib"/>
    </exec>

  </target>



  <target name="compile" depends="init,compile-ogl,compile-ogl-cg">

    <!-- Copy the  library file -->
    <copy todir="${build}/${platform}/${bldType}/bin">
          <fileset dir="${build}/${platform}/${bldType}/native/ogl/objs"
                      includes="j3dcore-ogl*.dll"
          />
    </copy>

  </target>

  <target name="dist">
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/${platform}/bin"/>

    <!-- Copy the library files -->
    <copy todir="${dist}/${platform}/bin">
          <fileset dir="${build}/${platform}/opt/bin"
                      includes="j3dcore-ogl*.dll"
          />
    </copy>

  </target>

</project>
