<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!---Commandline for Testing: msbuild Build.xml /target:build /property:teamcity_build_checkoutDir=C:\x\;build_number=01.02.46.122 -->


<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
  <PropertyGroup>
	 <SetupToBuild>AMUSESetup\AMUSESetupObfuscated</SetupToBuild>
	 <SolutionDir>$(teamcity_build_checkoutDir)\</SolutionDir>
	 <SolutionToBuild>$(SolutionDir)BarCamp.sln</SolutionToBuild>
	 <PlatformForBuild>"Any CPU"</PlatformForBuild>
	 <BuildType>Release</BuildType>
		<GuidGenFunction> 
		<![CDATA[ 
		  public static string ScriptMain() { 
			  return System.Guid.NewGuid().ToString().ToUpper(); 
		  } 
		  ]]> 
		</GuidGenFunction> 		
  </PropertyGroup>
  
  
  <UsingTask AssemblyFile="$(SolutionDir)\Tools\Sedodream.MSBuild.Tasks.dll" TaskName="GetDate"/>
  
  <ItemGroup>
    <AssemblyInfoFiles Include="$(SolutionDir)**\AssemblyInfo.cs" />
	<TechnologyFiles Include="$(SolutionDir)**\AmuseMDG.xml" />
	<ActionScript Include="$(SolutionDir)**\*.as" />
	<DeploymentInfoFiles Include="$(SolutionDir)$(SetupToBuild).vdproj" />	
  </ItemGroup>
  
  <ItemGroup>
	<ProjectFiles Include="$(SolutionDir)**\*.csproj" />
	<CSharpFiles Include="$(SolutionDir)**\*.cs" />
	<XamlFiles Include="$(SolutionDir)**\*.xaml" />
	<AppXamlFiles Include="$(SolutionDir)**\App.xaml" />
  </ItemGroup>
  
  <Target Name="TouchPack" >
		<!-- This MsBuild Target Converts a Surface Application to be a Windows 7 TouchPack Application-->
		<FileUpdate Files="@(ProjectFiles)" Regex="..\\Libs\\Microsoft.Surface." ReplacementText="..\\Libs\\Microsoft.Surface.TouchPack." />
		<FileUpdate Files="@(ProjectFiles)" Regex="Reference Include=&quot;Microsoft.Surface." ReplacementText="Reference Include=&quot;Microsoft.Surface.TouchPack." />
		
		<!-- Code Change using Microsoft.Surface. ==> using Microsoft.Surface.TouchPack. -->
		<FileUpdate Files="@(CSharpFiles)" Regex="using Microsoft.Surface" ReplacementText="using Microsoft.Surface.TouchPack" />
		
		<!-- Xaml Change xmlns:s="http://schemas.microsoft.com/surface/2008" ==>  xmlns:s="http://schemas.microsoft.com/surface/touchpack/2008" -->
		<FileUpdate Files="@(XamlFiles)" Regex="xmlns:s=&quot;http://schemas.microsoft.com/surface/2008&quot;" ReplacementText="xmlns:s=&quot;http://schemas.microsoft.com/surface/touchpack/2008&quot;" />
		
		<!-- App.Xaml Change remove <ResourceDictionary Source="/Microsoft.Surface.Presentation.Generic;v1.0.0.0;31bf3856ad364e35;component/themes\generic.xaml"/>-->
		<FileUpdate Files="@(XamlFiles)" Regex="&lt;ResourceDictionary Source=&quot;/Microsoft.Surface.Presentation.Generic;v1.0.0.0;31bf3856ad364e35;component/themes\\generic.xaml&quot;/&gt;" ReplacementText=" " />
  </Target>
  
    <Target Name="UpdateVersion"  Condition="$(build_number) != ''">
		<Script Language="C#" Code="$(GuidGenFunction)"> 
		  <Output TaskParameter="ReturnValue" PropertyName="NewGuid" />  
		</Script>  
		<Message Text="Guid: $(NewGuid)" />
		
		<!-- Update all the assembly info files with generated version info -->
		<GetDate Format="dd.MM.yyyy">
			<Output PropertyName="DateValue" TaskParameter="Date"/>
		</GetDate>
		
		<Attrib Files="@(AssemblyInfoFiles)" Normal="true" />
		<FileUpdate Files="@(AssemblyInfoFiles)" Regex="AssemblyVersion\(&quot;.*&quot;\)\]" ReplacementText="AssemblyVersion(&quot;$(build_number)&quot;)]" />
		<FileUpdate Files="@(AssemblyInfoFiles)" Regex="AssemblyFileVersion\(&quot;.*&quot;\)\]" ReplacementText="AssemblyFileVersion(&quot;$(build_number)&quot;)]" />	
		<!-- 
		<FileUpdate Files="@(DeploymentInfoFiles)" Regex="&quot;ProductCode&quot; = &quot;8:{.*}&quot;" ReplacementText="&quot;ProductCode&quot; = &quot;8:{$(NewGuid)}&quot;" />	
		<FileUpdate Files="@(DeploymentInfoFiles)" Regex="&quot;ProductVersion&quot; = &quot;8:.*&quot;" ReplacementText="&quot;ProductVersion&quot; = &quot;8:$(build_number)&quot;" />	
		
		<FileUpdate Files="@(TechnologyFiles)" Regex="Simulation Template Version: XXX" ReplacementText="Simulation Template Version: $(build_number) $(DateValue)" />	
		-->
		<Message Text="AssemblyInfo files updated to version &quot;$(build_number)&quot;" />
		
	 </Target> 
  
 <Target Name="Build" DependsOnTargets="UpdateVersion">
 	
	<!--<MSBuild Projects="$(SolutionDir)\FlexIntegration\FlexIntegration.csproj" Properties="Configuration=$(BuildType);PostBuildEvent=" />-->
	<MSBuild Projects="$(SolutionToBuild)" Properties="Configuration=$(BuildType)"  Targets="Rebuild" /><!--Include="Default|Any CPU" />-->
	
	
 </Target> 
 
 <Target Name="Setup" >
 <!--<Exec Timeout="120000" Command="&quot;$(VS2008_Path)\devenv.exe&quot; &quot;@(SolutionToBuild)&quot; /build &quot;@(BuildType)&quot; /Project &quot;$(SolutionDir)$(SetupToBuild).vdproj&quot;" WorkingDirectory="$(SolutionDir)" />-->
	
	<Exec Timeout="360000" Command="&quot;$(VS2008_Path)\devenv.exe&quot; &quot;$(SolutionToBuild)&quot; /build &quot;$(BuildType)&quot; /Project &quot;$(SolutionDir)$(SetupToBuild).vdproj&quot;" WorkingDirectory="$(SolutionDir)" />

</Target>
 
  
</Project>
