<project name="ANX.Framework Build" default="build"> <property name="build.configuration" value="Release" /> <property name="build.platform" value="Any CPU" /> <property name="build.dir" value="../bin" /> <property name="project.anx.path" value="../ANX.Framework" /> <property name="project.anx.name" value="ANX.Framework" /> <property name="project.anx.extended" value="false" unless="${property::exists('project.anx.extended')}" /> <property name="project.anx.directives" value="" unless="${property::exists('project.anx.directives')}" /> <property name="project.anx.path.inputsystem.xinput" value="../InputSystems/ANX.InputSystem.Windows.XInput" /> <property name="project.anx.name.inputsystem.xinput" value="ANX.InputSystem.Windows.XInput" /> <property name="project.anx.path.inputsystem.kinect" value="../InputSystems/ANX.InputSystem.Windows.Kinect" /> <property name="project.anx.name.inputsystem.kinect" value="ANX.InputSystem.Windows.Kinect" /> <property name="project.anx.path.soundsystem.xaudio" value="../SoundSystems/ANX.SoundSystem.Windows.XAudio" /> <property name="project.anx.name.soundsystem.xaudio" value="ANX.SoundSystem.Windows.XAudio" /> <property name="project.anx.path.rendersystem.dx10" value="../RenderSystems/ANX.Framework.Windows.DX10" /> <property name="project.anx.name.rendersystem.dx10" value="ANX.Framework.Windows.DX10" /> <property name="project.anx.path.rendersystem.dx11" value="../RenderSystems/ANX.RenderSystem.Windows.DX11" /> <property name="project.anx.name.rendersystem.dx11" value="ANX.RenderSystem.Windows.DX11" /> <property name="project.anx.path.rendersystem.gl3" value="../RenderSystems/ANX.Framework.Windows.GL3" /> <property name="project.anx.name.rendersystem.gl3" value="ANX.Framework.Windows.GL3" /> <property name="project.anxcontent.path" value="../ANX.Framework.ContentPipeline" /> <property name="project.anxcontent.name" value="ANX.Framework.ContentPipeline" /> <property name="project.anx.tools.path.ANXStatusComparer" value="../Tools/ANXStatusComparer" /> <property name="project.anx.tools.name.ANXStatusComparer" value="ANXStatusComparer" /> <property name="project.anx.tools.path.StockShaderCodeGenerator" value="../Tools/StockShaderCodeGenerator" /> <property name="project.anx.tools.name.StockShaderCodeGenerator" value="StockShaderCodeGenerator" /> <property name="project.anx.tools.path.XNAToANXConverter" value="../Tools/XNAToANXConverter" /> <property name="project.anx.tools.name.XNAToANXConverter" value="XNAToANXConverter" /> <target name="clean" description="Cleans all targets."> <delete> <fileset> <include name="../bin/**" /> <include name="${build.dir}/${build.configuration}/installer/**" /> <include name="${project.anx.path}/obj/**" /> <include name="${project.anx.path.inputsystem.xinput}/obj/**" /> <include name="${project.anx.path.inputsystem.kinect}/obj/**" /> <include name="${project.anx.path.soundsystem.xaudio}/obj/**" /> <include name="${project.anx.path.rendersystem.dx10}/obj/**" /> <include name="${project.anx.path.rendersystem.dx11}/obj/**" /> <include name="${project.anx.path.rendersystem.gl3}/obj/**" /> <include name="${project.anxcontent.path}/obj/**" /> </fileset> </delete> </target> <target name="build" description="Build all targets."> <if test="${project.anx.extended}"> <property name="project.anx.directives" value="${project.anx.directives} XNAEXT" /> <echo message="Compiler directives: ${project.anx.directives}" /> </if> <call target="clean" /> <call target="build_tools" /> <call target="generate_stock_shaders" /> <call target="build_anx" /> <call target="build_anx_inputsystems" /> <call target="build_anx_soundsystems" /> <call target="build_anx_rendersystems" /> <call target="build_anx_content_pipeline" /> </target> <target name="build_anx" description="Build ANX.Framework core"> <echo message="===================================================" /> <echo message="Now building: ANX.Framework core assembly" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=${build.dir}/${build.configuration}" /> <arg value="/p:AllowUnsafeBlocks=true" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path}/${project.anx.name}.csproj" /> </exec> </target> <target name="build_anx_rendersystems" description="Build ANX.Framework RenderSystems"> <echo message="===================================================" /> <echo message="Now building: ANX.Framework RenderSystem DirectX10" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=../${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/p:AllowUnsafeBlocks=true" /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path.rendersystem.dx10}/${project.anx.name.rendersystem.dx10}.csproj" /> </exec> <echo message="===================================================" /> <echo message="Now building: ANX.Framework RenderSystem DirectX11" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=../${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path.rendersystem.dx11}/${project.anx.name.rendersystem.dx11}.csproj" /> </exec> <echo message="===================================================" /> <echo message="Now building: ANX.Framework RenderSystem OpenGL3" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=../${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path.rendersystem.gl3}/${project.anx.name.rendersystem.gl3}.csproj" /> </exec> </target> <target name="build_anx_content_pipeline" description="Build ANX.Framework ContentPipeline extensions"> <echo message="===================================================" /> <echo message="Now building: ANX.Framework ContentPipeline extensions" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anxcontent.path}/${project.anxcontent.name}.csproj" /> </exec> </target> <target name="build_anx_inputsystems" description="Build ANX.Framework InputSystems"> <echo message="===================================================" /> <echo message="Now building: ANX.Framework InputSystem XInput" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=../${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path.inputsystem.xinput}/${project.anx.name.inputsystem.xinput}.csproj" /> </exec> <if test="${project.anx.extended}"> <echo message="===================================================" /> <echo message="Now building: ANX.Framework InputSystem Kinect" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=../${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path.inputsystem.kinect}/${project.anx.name.inputsystem.kinect}.csproj" /> </exec> </if> </target> <target name="build_anx_soundsystems" description="Build ANX.Framework SoundSystems"> <echo message="===================================================" /> <echo message="Now building: ANX.Framework SoundSystem XAudio" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=${build.configuration}"/> <arg value='/p:Platform="${build.platform}"'/> <arg value="/p:OutputPath=../${build.dir}/${build.configuration}" /> <arg value='/p:DefineConstants="${project.anx.directives}"' /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.path.soundsystem.xaudio}/${project.anx.name.soundsystem.xaudio}.csproj" /> </exec> </target> <target name="build_tools" description="Build ANX.Framework tools"> <echo message="===================================================" /> <echo message="Now building: ANXStatusComparer tool (asc.exe)" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=Release"/> <arg value='/p:Platform="Any CPU"'/> <arg value="/p:OutputPath=${build.dir}" /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.tools.path.ANXStatusComparer}/${project.anx.tools.name.ANXStatusComparer}.csproj" /> </exec> <echo message="===================================================" /> <echo message="Now building: XNAToANXConverter tool (x2a.exe)" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=Release"/> <arg value='/p:Platform="Any CPU"'/> <arg value="/p:OutputPath=${build.dir}" /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.tools.path.XNAToANXConverter}/${project.anx.tools.name.XNAToANXConverter}.csproj" /> </exec> <echo message="===================================================" /> <echo message="Now building: StockShaderCodeGenerator tool (sscg.exe)" /> <echo message="===================================================" /> <exec program="msbuild.exe" > <arg value="/t:Build"/> <arg value="/p:Configuration=Release"/> <arg value='/p:Platform="Any CPU"'/> <arg value="/p:OutputPath=${build.dir}" /> <arg value="/p:AllowUnsafeBlocks=true" /> <arg value="/clp:ErrorsOnly" /> <arg value="${project.anx.tools.path.StockShaderCodeGenerator}/${project.anx.tools.name.StockShaderCodeGenerator}.csproj" /> </exec> </target> <target name="build_stock_shaders" description="Build the stock shaders for the render systems."> <call target="build_tools" /> <call target="generate_stock_shaders" /> </target> <target name="generate_stock_shaders" description="Generate code for stock shaders"> <echo message="===================================================" /> <echo message="Now generating code for DirectX 10 stock shaders" /> <echo message="===================================================" /> <exec program="sscg.exe" > <arg value="../shader/DX10/build.xml" /> </exec> <echo message="===================================================" /> <echo message="Now generating code for OpenGL 3 stock shaders" /> <echo message="===================================================" /> <exec program="sscg.exe" > <arg value="../shader/GL3/build.xml" /> </exec> </target> <target name="create_packages" description="generates all type of packages"> <call target="create_zip_packages" /> <call target="create_msi_packages" /> </target> <target name="create_zip_packages" description="Generate zip package containing binaries" depends="build"> <loadfile file="${project.anx.path}/Properties/AssemblyInfo.cs" property="assembly_version_file" /> <regex pattern="AssemblyVersion\(.(?'assembly_version'\d+\.\d+.\d+)" input="${assembly_version_file}" /> <property name="build.output.release_package" value="../package/${project.anx.name}-${build.configuration}-${assembly_version}.zip"/> <zip ziplevel="9" zipfile="${build.output.release_package}"> <fileset basedir="${build.dir}/${build.configuration}/"> <include name="*.dll" /> <include name="*.config" /> <include name="../../doc/license.txt" /> </fileset> </zip> </target> <target name="create_msi_packages" description="Create the installer package" depends="build"> <loadfile file="${project.anx.path}/Properties/AssemblyInfo.cs" property="assembly_version_file" /> <regex pattern="AssemblyVersion\(.(?'assembly_version'\d+\.\d+.\d+)" input="${assembly_version_file}" /> <property name="build.output.installer_package" value="../package/${project.anx.name}-${build.configuration}-${assembly_version}.msi"/> <property name="wix.dir" value="${path::combine(environment::get-variable('WIX'), 'bin')}" readonly="true" /> <loadtasks assembly="${wix.dir}\Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" /> <candle out="${build.dir}/${build.configuration}/installer/" exedir="${wix.dir}"> <sources> <include name="../Installer/anx.wxs" /> </sources> <defines> <define name="PRODUCTVERSION" value="${assembly_version}" /> </defines> </candle> <light exedir="${wix.dir}" out="${build.output.installer_package}" warningsaserrors="true" suppressices="ICE57" cultures="en-us" extensions="WixUIExtension" rebuild="true" suppresspdb="true"> <!-- Specify additional options --> <arg line="-fv" /> <sources basedir="${build.dir}/${build.configuration}/installer/"> <include name="*.wixobj" /> </sources> </light> </target> </project>