aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/Common.targets243
-rw-r--r--build/build.csproj135
-rw-r--r--build/target.csproj167
3 files changed, 299 insertions, 246 deletions
diff --git a/build/Common.targets b/build/Common.targets
index 7682b19e..31f8550d 100644
--- a/build/Common.targets
+++ b/build/Common.targets
@@ -1,78 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
-
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- **********************************************************************************************
-Targets For FullBuild
+Targets For Clean
*********************************************************************************************** -->
- <Target Name="_FullBuild" DependsOnTargets="_CleanOutputDirectory;_BuildProtoGen;_GenerateSource;_CopyGeneratedSource">
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;TargetVersion=NET20;BuildTools=3.5" Targets="_BuildAllConfigurations" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;TargetVersion=CF35;BuildTools=3.5" Targets="_BuildAllConfigurations" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;TargetVersion=SL40;BuildTools=4.0" Targets="_BuildAllConfigurations" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="" Targets="_CompletePackages" />
- </Target>
+ <Target Name="_CleanFolder">
+ <Message Importance="normal" Text="Removing temporary directory '$(CleanFolderDirectory)'"/>
+ <Error Text="Can not remove empty directory name." Condition=" '$(CleanFolderDirectory)' == '' " />
- <Target Name="_BuildAllConfigurations">
- <!-- Release Package -->
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);BuildTools=$(BuildTools);BuildConfiguration=Release" Targets="_BuildConfiguration" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);PackageName=Release-$(TargetVersion)" Targets="_GeneratePackage" />
- <!-- Full Package -->
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);BuildTools=$(BuildTools);BuildConfiguration=Debug" Targets="_BuildConfiguration" />
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;Platform=$(Platform);TargetVersion=$(TargetVersion);PackageName=Full-$(TargetVersion)" Targets="_GeneratePackage" />
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)" Condition="Exists($(CleanFolderDirectory))" Outputs="@(Ignore)"
+ Command="MOVE /Y &quot;$(CleanFolderDirectory)&quot; &quot;$(CleanFolderDirectory)-deleted&quot; > NUL" />
+
+ <RemoveDir Directories="$(CleanFolderDirectory)-deleted" Condition="Exists('$(CleanFolderDirectory)-deleted')" />
</Target>
- <Target Name="_BuildConfiguration" DependsOnTargets="_ReportConfig;_Clean;_BuildSolution;_Test;_PreparePackageComponent" />
-
- <Target Name="_ReportConfig">
- <Message Importance="high" Text="
-
-Building $(BuildConfiguration) configuration for .NET Framework $(TargetVersion) $(Platform)" />
+ <Target Name="_CleanTempOutput">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="CleanFolderDirectory=%(TempBuildFolder.Identity);" Targets="_CleanFolder" />
+ </Target>
+
+ <Target Name="_CleanAll" DependsOnTargets="_CleanTempOutput">
+ <MakeDir Directories="$(BuildTempDirectory)" />
+ <MakeDir Directories="$(BuildOutputDirectory)" />
</Target>
<!-- **********************************************************************************************
Targets For Build
*********************************************************************************************** -->
- <Target Name="_BuildSolution">
- <Message Text="Running $(SolutionTarget) $(BuildConfiguration) with $(BuildTools) on $(SolutionFile)" Importance="normal" />
- <MSBuild Targets="$(SolutionTarget)" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)"
- Properties="Configuration=$(BuildConfiguration);Platform=$(Platform);TreatWarningsAsErrors=true;"
- />
+ <Target Name="_CompileAll">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;" Targets="_BuildAllConfigurations" />
</Target>
- <Target Name="_Clean">
- <RemoveDir Directories="@(WorkingDirectories)" Condition="Exists(%(WorkingDirectories.Identity))" />
- <MakeDir Directories="@(WorkingDirectories)" />
-
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Clean;BuildConfiguration=$(BuildConfiguration);Platform=$(Platform);TargetVersion=$(TargetVersion)" Targets="_BuildSolution" ContinueOnError="true" />
+ <Target Name="_BuildAllConfigurations">
+ <MSBuild Properties="TargetVersion=cf20;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=cf35;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=net20;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=net35;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=net40;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=sl20;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=sl30;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=sl40;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=pl40;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
</Target>
- <Target Name="_Compile">
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;BuildConfiguration=$(BuildConfiguration);Platform=$(Platform);TargetVersion=$(TargetVersion)" Targets="_BuildSolution" />
- </Target>
+<!-- **********************************************************************************************
+Targets For Tools
+*********************************************************************************************** -->
- <Target Name="Requires20">
- <Error Text="Must be run with TargetVersion=NET20" Condition=" '$(TargetVersion)' != 'NET20' " />
- </Target>
+ <Target Name="_BuildTools">
+
+ <MSBuild Targets="Build" ToolsVersion="3.5" Projects="$(ProjectDirectory)\src\ProtocolBuffers.sln" Properties="Configuration=Release;Platform=Any CPU;" />
+ <Copy SourceFiles="%(ToolsOutputItem.Identity)" DestinationFolder="$(BuildOutputDirectory)\tools" />
- <Target Name="RequiresRelease">
- <Error Text="Must be run with BuildConfiguration=Release" Condition=" '$(BuildConfiguration)' != 'Release' " />
+ <Copy SourceFiles="$(LibDirectory)\NUnit-config\nunit-console.v2.0.config" DestinationFiles="$(NUnitExePath).config" />
+ <Exec
+ WorkingDirectory="%(ToolsTestContainer.RootDir)%(ToolsTestContainer.Directory)"
+ Command="&quot;$(NUnitExePath)&quot; /nologo /noshadow %(ToolsTestContainer.Identity) /xml:$(BuildTempDirectory)\%(ToolsTestContainer.Filename).xml" />
+
</Target>
- <!-- **********************************************************************************************
+<!-- **********************************************************************************************
Targets For GenerateSource
*********************************************************************************************** -->
- <Target Name="_BuildProtoGen">
- <MSBuild Targets="Rebuild" ToolsVersion="3.5"
- Projects="$(ProjectDirectory)\src\ProtocolBuffers\ProtocolBuffers.csproj;$(ProjectDirectory)\src\ProtoGen\ProtoGen.csproj"
- Properties="Step=_BuildProtoGen;Configuration=Release;Platform=AnyCPU;TargetFrameworkVersion=v2.0;DebugType=none;DocumentationFile=;TreatWarningsAsErrors=true;OutputPath=$(BuildOutputDirectory)\ProtoGen;" />
- </Target>
-
<Target Name="_CleanTempSource">
- <Message Importance="normal" Text="Cleaning source directory $(SourceTempDirectory)"/>
- <RemoveDir Directories="$(SourceTempDirectory)" Condition="Exists($(SourceTempDirectory))" />
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="CleanFolderDirectory=$(SourceTempDirectory);" Targets="_CleanFolder" />
<MakeDir Directories="$(SourceTempDirectory)" />
</Target>
@@ -87,166 +80,38 @@ Targets For GenerateSource
</Target>
<!-- **********************************************************************************************
-Targets For Test
-*********************************************************************************************** -->
-
- <Target Name="_Test">
- <CallTarget Targets="_RunTests" />
- </Target>
-
- <Target Name="_RunTests">
- <!-- NUnit -->
- <Copy SourceFiles="$(NUnitExeConfig)" DestinationFiles="$(NUnitExePath).config" />
- <Exec Condition="$(BuildConfiguration)=='Debug' or $(BuildConfiguration)=='Release'"
- Command="&quot;$(NUnitExePath)&quot; /nologo /noshadow %(TestContainer.Identity) /xml:$(BuildTempDirectory)\%(TestContainer.Filename).xml" />
- <!-- StatLight -->
- <Exec Condition="$(BuildConfiguration)=='Debug_Silverlight' or $(BuildConfiguration)=='Release_Silverlight'"
- Command="&quot;$(StatLightExePath)&quot; -x %(StatLightTestContainer.Identity) --ReportOutputFileType=NUnit --ReportOutputFile=$(BuildTempDirectory)\%(StatLightTestContainer.Filename).xml" />
- </Target>
-
-<!-- **********************************************************************************************
Targets For Package
*********************************************************************************************** -->
-
- <Target Name="_CleanOutputDirectory">
- <RemoveDir Directories="$(BuildOutputPackage)" ContinueOnError="true" />
- <RemoveDir Directories="$(BuildOutputDirectory)" ContinueOnError="true" />
- <MakeDir Directories="$(BuildOutputDirectory)" ContinueOnError="true" />
- </Target>
-
- <Target Name="_PreparePackageComponent">
- <Copy SourceFiles="@(DynamicPackageItem)" DestinationFolder="$(BuildOutputPackage)\$(BuildConfiguration)\$(TargetVersion)\%(DynamicPackageItem.TargetDirectory)\%(DynamicPackageItem.RecursiveDir)" />
+
+ <Target Name="_PackageAll">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=_Publish;" Targets="_BuildAllConfigurations" />
</Target>
<Target Name="_GeneratePackage">
<Copy SourceFiles="@(StaticPackageItem)" DestinationFolder="$(BuildOutputPackage)\%(StaticPackageItem.TargetDirectory)\%(StaticPackageItem.RecursiveDir)" />
- <Exec Command="&quot;$(ZipExePath)&quot; a -tzip ..\$(PackageName).zip * -r" WorkingDirectory="$(BuildOutputPackage)" />
+ <Exec Command="&quot;$(ZipExePath)&quot; a -tzip ..\$(PackageName)-binaries.zip * -x!*.pdb -r" WorkingDirectory="$(BuildOutputPackage)" />
+ <Exec Command="&quot;$(ZipExePath)&quot; a -tzip ..\$(PackageName)-symbols.zip * -r" WorkingDirectory="$(BuildOutputPackage)" />
</Target>
- <Target Name="_CompletePackages">
- <ItemGroup>
- <ReleasePackageItem Include="$(BuildOutputDirectory)\ProtoGen\*">
- <TargetDirectory>\Protoc</TargetDirectory>
- </ReleasePackageItem>
- <!-- RELEASE -->
- <ReleasePackageItem Include="$(BuildOutputDirectory)\v2.0\Release\*">
- <TargetDirectory>\Release\v2.0</TargetDirectory>
- </ReleasePackageItem>
- <ReleasePackageItem Include="$(BuildOutputDirectory)\v2.0\Release_Silverlight\*">
- <TargetDirectory>\Release_Silverlight\v2.0</TargetDirectory>
- </ReleasePackageItem>
- <ReleasePackageItem Include="$(BuildOutputDirectory)\v3.5\Release\*">
- <TargetDirectory>\Release\v3.5</TargetDirectory>
- </ReleasePackageItem>
- <ReleasePackageItem Include="$(BuildOutputDirectory)\v3.5\Release_Silverlight\*">
- <TargetDirectory>\Release_Silverlight\v3.0</TargetDirectory>
- </ReleasePackageItem>
- <ReleasePackageItem Include="$(BuildOutputDirectory)\v4.0\Release\*">
- <TargetDirectory>\Release\v4.0</TargetDirectory>
- </ReleasePackageItem>
- <ReleasePackageItem Include="$(BuildOutputDirectory)\v4.0\Release_Silverlight\*">
- <TargetDirectory>\Release_Silverlight\v4.0</TargetDirectory>
- </ReleasePackageItem>
- <!-- DEBUG -->
- <DebugPackageItem Include="$(BuildOutputDirectory)\v2.0\Debug\*">
- <TargetDirectory>\Debug\v2.0</TargetDirectory>
- </DebugPackageItem>
- <DebugPackageItem Include="$(BuildOutputDirectory)\v2.0\Debug_Silverlight\*">
- <TargetDirectory>\Debug_Silverlight\v2.0</TargetDirectory>
- </DebugPackageItem>
- <DebugPackageItem Include="$(BuildOutputDirectory)\v3.5\Debug\*">
- <TargetDirectory>\Debug\v3.5</TargetDirectory>
- </DebugPackageItem>
- <DebugPackageItem Include="$(BuildOutputDirectory)\v3.5\Debug_Silverlight\*">
- <TargetDirectory>\Debug_Silverlight\v3.0</TargetDirectory>
- </DebugPackageItem>
- <DebugPackageItem Include="$(BuildOutputDirectory)\v4.0\Debug\*">
- <TargetDirectory>\Debug\v4.0</TargetDirectory>
- </DebugPackageItem>
- <DebugPackageItem Include="$(BuildOutputDirectory)\v4.0\Debug_Silverlight\*">
- <TargetDirectory>\Debug_Silverlight\v4.0</TargetDirectory>
- </DebugPackageItem>
- </ItemGroup>
-
- <RemoveDir Directories="$(BuildOutputDirectory)\Release;$(BuildOutputDirectory)\Full" ContinueOnError="true" />
- <MakeDir Directories="$(BuildOutputDirectory)\Release;$(BuildOutputDirectory)\Full" ContinueOnError="true" />
-
- <!-- Copy files for Release -->
- <Copy SourceFiles="@(StaticPackageItem)" DestinationFolder="$(BuildOutputDirectory)\Release\%(StaticPackageItem.TargetDirectory)\%(StaticPackageItem.RecursiveDir)" />
- <Copy SourceFiles="@(ReleasePackageItem)" DestinationFolder="$(BuildOutputDirectory)\Release\%(ReleasePackageItem.TargetDirectory)\%(ReleasePackageItem.RecursiveDir)" />
- <Exec Command="&quot;$(ZipExePath)&quot; a -tzip $(BuildOutputDirectory)\release-binaries.zip * -r" WorkingDirectory="$(BuildOutputDirectory)\Release" />
-
- <!-- Copy files for Debug -->
- <Copy SourceFiles="@(StaticPackageItem)" DestinationFolder="$(BuildOutputDirectory)\Full\%(StaticPackageItem.TargetDirectory)\%(StaticPackageItem.RecursiveDir)" />
- <Copy SourceFiles="@(ReleasePackageItem)" DestinationFolder="$(BuildOutputDirectory)\Full\%(ReleasePackageItem.TargetDirectory)\%(ReleasePackageItem.RecursiveDir)" />
- <Copy SourceFiles="@(DebugPackageItem)" DestinationFolder="$(BuildOutputDirectory)\Full\%(DebugPackageItem.TargetDirectory)\%(DebugPackageItem.RecursiveDir)" />
- <Exec Command="&quot;$(ZipExePath)&quot; a -tzip $(BuildOutputDirectory)\full-binaries.zip * -r" WorkingDirectory="$(BuildOutputDirectory)\Full" />
-
- </Target>
-
<!-- **********************************************************************************************
Targets For Benchmark
*********************************************************************************************** -->
- <Target Name="_GenerateBenchmarkSource">
- <PropertyGroup>
- <Args>$(BenchmarkProtosDirectory)\google_size.proto $(BenchmarkProtosDirectory)\google_speed.proto</Args>
- </PropertyGroup>
-
- <Exec Command="$(ProtocExePath) --proto_path=$(BenchmarkProtosDirectory);$(ProtosDirectory) --include_imports=compiled.pb --descriptor_set_out=compiled.pb $(Args)" WorkingDirectory="$(SourceTempDirectory)" />
- <Exec Command="$(ProtogenExePath) compiled.pb" WorkingDirectory="$(SourceTempDirectory)" />
- </Target>
-
- <Target Name="_CompileBenchmarkAssemblyInFramework20" Condition=" '$(MSBuildToolsVersion)' != '2.0' ">
- <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;BuildConfiguration=$(BuildConfiguration);Platform=$(Platform)"
- Targets="_CompileBenchmarkAssembly" ToolsVersion="2.0" />
- </Target>
-
- <Target Name="_CompileBenchmarkAssembly" DependsOnTargets="_GenerateBenchmarkSource">
- <Error Text="Must be run with Framework 2.0" Condition=" '$(MSBuildToolsVersion)' != '2.0' " />
-
- <ItemGroup>
- <BenchmarkSources Include="$(SourceTempDirectory)\GoogleSizeProtoFile.cs" />
- <BenchmarkSources Include="$(SourceTempDirectory)\GoogleSpeedProtoFile.cs" />
- <BenchmarkSources Include="$(SourceDirectory)\ProtoBench\Properties\AssemblyInfo.cs" />
- </ItemGroup>
-
- <Csc
- TargetType="library"
- OutputAssembly="$(BuildTempDirectory)\BenchmarkTypes.dll"
- Optimize="true"
- Sources="@(BenchmarkSources)"
- References="$(SourceDirectory)\ProtocolBuffers\bin\$(BuildConfiguration)\Google.ProtocolBuffers.dll"
- />
- </Target>
-
- <Target Name="_PrepareBenchmarkEnvironment" DependsOnTargets="_CompileBenchmarkAssemblyInFramework20">
- <ItemGroup>
- <BenchmarkResources Include="$(BenchmarkProtosDirectory)\google_message1.dat" />
- <BenchmarkResources Include="$(BenchmarkProtosDirectory)\google_message2.dat" />
- <BenchmarkResources Include="$(SourceDirectory)\ProtocolBuffers\bin\$(BuildConfiguration)\Google.ProtocolBuffers.dll" />
- <BenchmarkResources Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(BuildConfiguration)\Google.ProtocolBuffers.Serialization.dll" />
- <BenchmarkResources Include="$(SourceDirectory)\ProtoBench\bin\$(BuildConfiguration)\ProtoBench.exe" />
- </ItemGroup>
-
- <Copy SourceFiles="@(BenchmarkResources)" DestinationFolder="$(BuildTempDirectory)" />
- </Target>
-
- <Target Name="_RunBenchmarks" DependsOnTargets="_PrepareBenchmarkEnvironment">
+ <Target Name="_RunBenchmarks">
<ItemGroup>
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage1,BenchmarkTypes" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage1,ProtoBench" />
<BenchmarkParameter Include="google_message1.dat" />
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage1,BenchmarkTypes" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage1,ProtoBench" />
<BenchmarkParameter Include="google_message1.dat" />
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage2,BenchmarkTypes" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage2,ProtoBench" />
<BenchmarkParameter Include="google_message2.dat" />
- <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage2,BenchmarkTypes" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage2,ProtoBench" />
<BenchmarkParameter Include="google_message2.dat" />
</ItemGroup>
- <Message Text="Running $(ProtoBenchExePath) from $(BuildTempDirectory)" />
- <Exec Command="&quot;$(ProtoBenchExePath)&quot; $(BenchmarkArgs) @(BenchmarkParameter->'%(Identity)', ' ') &quot;/log:$(BenchmarkOutputFile)&quot;"
- WorkingDirectory="$(BuildTempDirectory)" />
+ <Message Text="Running ProtoBench.exe" />
+ <Exec Command="ProtoBench.exe $(BenchmarkArgs) @(BenchmarkParameter->'%(Identity)', ' ') &quot;/log:$(BenchmarkOutputFile)&quot;"
+ WorkingDirectory="$(SourceDirectory)\ProtoBench\bin\NET35\Release" />
</Target>
diff --git a/build/build.csproj b/build/build.csproj
index a2db97cf..31d12631 100644
--- a/build/build.csproj
+++ b/build/build.csproj
@@ -1,15 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- build targets -->
+ <Target Name="CleanAll" DependsOnTargets="_CleanAll" />
+ <Target Name="BuildTools" DependsOnTargets="_BuildTools" />
+ <Target Name="GenerateSource" DependsOnTargets="_GenerateSource;_CopyGeneratedSource" />
+ <Target Name="BuildAll" DependsOnTargets="BuildTools;GenerateSource;_CompileAll" />
+ <Target Name="RebuildAll" DependsOnTargets="CleanAll;BuildAll" />
+ <Target Name="GeneratePackage" DependsOnTargets="_PackageAll;_GeneratePackage" />
+ <Target Name="FullBuild" DependsOnTargets="RebuildAll;GeneratePackage" />
+ <!-- misc targets -->
+ <Target Name="RunBenchmarks" DependsOnTargets="_CleanAll;_BuildTools;_RunBenchmarks" />
+
<PropertyGroup>
<ProjectName>Protocol Buffers</ProjectName>
- <BuildConfiguration Condition=" '$(BuildConfiguration)' == '' ">Error</BuildConfiguration>
- <Platform>Any CPU</Platform>
- <!-- TargetFrameworkVersion -->
- <TargetVersion Condition=" '$(TargetVersion)' == '' ">NET40</TargetVersion>
- <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
- <TargetFrameworkVersion Condition=" '$(TargetVersion)' == 'NET35' ">v3.5</TargetFrameworkVersion>
- <TargetFrameworkVersion Condition=" '$(TargetVersion)' == 'NET40' ">v4.0</TargetFrameworkVersion>
+ <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform>
+
<!--Directory Paths-->
<ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
<SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
@@ -17,7 +24,7 @@
<ProtosDirectory>$(ProjectDirectory)\protos</ProtosDirectory>
<SourceTempDirectory>$(ProjectDirectory)\build_temp\GeneratedSource</SourceTempDirectory>
- <BuildTempDirectory>$(ProjectDirectory)\build_temp\$(BuildConfiguration)\$(TargetVersion)</BuildTempDirectory>
+ <BuildTempDirectory>$(ProjectDirectory)\build_temp</BuildTempDirectory>
<BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory>
<BuildOutputPackage>$(BuildOutputDirectory)</BuildOutputPackage>
@@ -25,26 +32,19 @@
<BenchmarkOutputFile>$(BuildTempDirectory)\..\BenchmarkResults.txt</BenchmarkOutputFile>
<BenchmarkProtosDirectory>$(ProjectDirectory)\benchmarks</BenchmarkProtosDirectory>
- <PackageName Condition=" '$(PackageName)' == '' ">$(BuildConfiguration)</PackageName>
+ <PackageName Condition=" '$(PackageName)' == '' ">$(Configuration)</PackageName>
- <!--File Paths-->
- <SolutionFile>$(SourceDirectory)\ProtocolBuffersLibrary.$(TargetVersion).sln</SolutionFile>
-
<!--Tool Paths-->
- <ProtocExePath>$(LibDirectory)\protoc.exe</ProtocExePath>
- <ProtogenExePath>$(BuildOutputDirectory)\ProtoGen\protogen.exe</ProtogenExePath>
- <ProtoBenchExePath>$(BuildTempDirectory)\ProtoBench.exe</ProtoBenchExePath>
+ <ProtocExePath>$(BuildOutputDirectory)\tools\protoc.exe</ProtocExePath>
+ <ProtogenExePath>$(BuildOutputDirectory)\tools\protogen.exe</ProtogenExePath>
<NUnitExePath>$(LibDirectory)\NUnit\tools\nunit-console.exe</NUnitExePath>
- <NUnitExeConfig>$(LibDirectory)\NUnit-config\nunit-console.$(TargetFrameworkVersion).config</NUnitExeConfig>
- <StatLightExePath>$(LibDirectory)\StatLight\tools\StatLight.exe</StatLightExePath>
<ZipExePath>$(LibDirectory)\7-Zip 9.20\7za.exe</ZipExePath>
</PropertyGroup>
<Import Project="Common.targets"/>
+ <!-- Proto Files -->
<ItemGroup>
- <WorkingDirectories Include="$(BuildTempDirectory)" />
-
<Protos Include="$(ProtosDirectory)\extest\unittest_issues.proto" />
<Protos Include="$(ProtosDirectory)\extest\unittest_extras.proto" />
<Protos Include="$(ProtosDirectory)\extest\unittest_extras_full.proto" />
@@ -70,7 +70,12 @@
<Protos Include="$(ProtosDirectory)\google\test\google_size.proto" />
<Protos Include="$(ProtosDirectory)\google\test\google_speed.proto" />
<Protos Include="$(ProtosDirectory)\tutorial\addressbook.proto" />
-
+ <!-- for benchmark -->
+ <Protos Include="$(ProtosDirectory)\benchmarks\google_size.proto" />
+ <Protos Include="$(ProtosDirectory)\benchmarks\google_speed.proto" />
+ </ItemGroup>
+ <!-- Generated Source -->
+ <ItemGroup>
<!-- Main protos -->
<GeneratedSource Include="$(SourceTempDirectory)\CSharpOptions.cs">
<TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory>
@@ -160,26 +165,21 @@
<GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSpeedProtoFile.cs">
<TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
</GeneratedSource>
-
- <TestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffers.Test.dll" />
- <TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffersLite.Test.dll" />
- <TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffersMixedLite.Test.dll" />
- <TestContainer Condition=" '$(TargetVersion)' == '' "
- Include="$(SourceDirectory)\ProtoGen.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffers.ProtoGen.Test.dll" />
-
- <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffers.Test.xap" />
- <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffersLite.Test.xap" />
- <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffersLiteMixed.Test.xap" />
-
- <DynamicPackageItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffers.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffersLite.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffers.Serialization.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(BuildConfiguration)\Google.ProtocolBuffersLite.Serialization.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtoGen\bin\$(TargetVersion)\$(BuildConfiguration)\ProtoGen.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtoMunge\bin\$(TargetVersion)\$(BuildConfiguration)\ProtoMunge.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtoDump\bin\$(TargetVersion)\$(BuildConfiguration)\ProtoDump.*" />
- <DynamicPackageItem Include="$(SourceDirectory)\ProtoBench\bin\$(TargetVersion)\$(BuildConfiguration)\ProtoBench.*" />
-
+ <GeneratedSource Include="$(SourceTempDirectory)\GoogleSizeProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\GoogleSpeedProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ </ItemGroup>
+ <!-- Package Items -->
+ <ItemGroup>
<StaticPackageItem Include="$(ProjectDirectory)\CHANGES.txt" />
<StaticPackageItem Include="$(ProjectDirectory)\license.txt" />
<StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\descriptor.proto">
@@ -191,23 +191,44 @@
<StaticPackageItem Include="$(ProjectDirectory)\protos\tutorial\addressbook.proto">
<TargetDirectory>\protos\tutorial</TargetDirectory>
</StaticPackageItem>
- <StaticPackageItem Include="$(LibDirectory)\Protoc*">
- <TargetDirectory>\Protoc</TargetDirectory>
- </StaticPackageItem>
-
</ItemGroup>
+ <!-- Tools -->
+ <ItemGroup>
+ <ToolsTestContainer Include="$(SourceDirectory)\ProtoGen.Test\bin\NET35\Release\Google.ProtocolBuffers.ProtoGen.Test.dll" />
- <!-- targets -->
- <Target Name="Clean" DependsOnTargets="_Clean" />
- <Target Name="Build" DependsOnTargets="GenerateSource;_Compile;_Test" />
- <Target Name="Test" DependsOnTargets="_Test" />
- <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
- <Target Name="GenerateSource" DependsOnTargets="_BuildProtoGen;_GenerateSource;_CopyGeneratedSource" />
- <Target Name="BuildPackage" DependsOnTargets="PrepareOutputDirectory;PreparePackageComponent;GeneratePackage" />
- <Target Name="PrepareOutputDirectory" DependsOnTargets="_CleanOutputDirectory" />
- <Target Name="PreparePackageComponent" DependsOnTargets="_PreparePackageComponent" />
- <Target Name="GeneratePackage" DependsOnTargets="_GeneratePackage" />
- <Target Name="RunBenchmarks" DependsOnTargets="Requires20;RequiresRelease;Rebuild;_RunBenchmarks" />
- <Target Name="FullBuild" DependsOnTargets="_FullBuild" />
-
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtocolBuffers\bin\NET35\Release\Google.ProtocolBuffers.dll" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\NET35\Release\Google.ProtocolBuffers.Serialization.dll" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoGen\bin\NET35\Release\ProtoGen.exe" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoGen\bin\NET35\Release\ProtoGen.exe.config" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoMunge\bin\NET35\Release\ProtoMunge.exe" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoDump\bin\NET35\Release\ProtoDump.exe" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoBench\bin\NET35\Release\ProtoBench.exe" />
+ <ToolsOutputItem Include="$(LibDirectory)\protoc.exe" />
+ <ToolsOutputItem Include="$(LibDirectory)\protoc-license.txt" />
+ </ItemGroup>
+ <!-- Temporary Directories -->
+ <ItemGroup>
+ <TempBuildFolder Include="$(BuildTempDirectory)" />
+ <TempBuildFolder Include="$(BuildOutputDirectory)" />
+ <TempBuildFolder Include="$(SourceDirectory)\AddressBook\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\AddressBook\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoBench\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoBench\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Serialization\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Test\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Test\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffersLite.Test\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoDump\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoDump\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen.Test\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen.Test\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoMunge\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoMunge\bin" />
+ </ItemGroup>
</Project>
diff --git a/build/target.csproj b/build/target.csproj
new file mode 100644
index 00000000..0436b83d
--- /dev/null
+++ b/build/target.csproj
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+<!-- **********************************************************************************************
+High-level Targets
+*********************************************************************************************** -->
+
+ <Target Name="Clean" DependsOnTargets="_Clean" />
+ <Target Name="Build" DependsOnTargets="_Compile;_Test" />
+ <Target Name="Test" DependsOnTargets="_Test" />
+ <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+ <Target Name="Publish" DependsOnTargets="Clean;Build;_Publish" />
+
+ <!-- **********************************************************************************************
+Properties
+*********************************************************************************************** -->
+
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform>
+ <TargetVersion Condition=" '$(TargetVersion)' == '' ">NET20</TargetVersion>
+ <BuildParams></BuildParams>
+
+ <!--Directory Paths-->
+ <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
+ <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
+ <LibDirectory>$(ProjectDirectory)\lib</LibDirectory>
+
+ <!--File Paths-->
+ <BuildTempDirectory>$(ProjectDirectory)\build_temp\$(Configuration)\$(TargetVersion)</BuildTempDirectory>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output\$(Configuration)\$(TargetVersion)</BuildOutputDirectory>
+ <SolutionFile>$(SourceDirectory)\ProtocolBuffersLibrary.$(TargetVersion).sln</SolutionFile>
+
+ <!--Tool Paths-->
+ <NUnitExePath>$(LibDirectory)\NUnit\tools\nunit-console.exe</NUnitExePath>
+ <StatLightExePath>$(LibDirectory)\StatLight\tools\StatLight.exe</StatLightExePath>
+ </PropertyGroup>
+
+<!-- **********************************************************************************************
+Target Versions
+*********************************************************************************************** -->
+
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'NET20' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NUNIT</TestFramework>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'NET35' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NUNIT</TestFramework>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'NET40' ">
+ <BuildTools>4.0</BuildTools>
+ <TestFramework>NUNIT</TestFramework>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'CF20' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NONE</TestFramework>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'CF35' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NONE</TestFramework>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'SL20' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'SL30' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'SL40' ">
+ <BuildTools>4.0</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'PL40' ">
+ <BuildTools>4.0</BuildTools>
+ <TestFramework>NONE</TestFramework>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output\$(Configuration)\portable-net40+sl4+sl5+wp7+wp8+win8</BuildOutputDirectory>
+ </PropertyGroup>
+
+<!-- **********************************************************************************************
+File Groups
+*********************************************************************************************** -->
+
+ <ItemGroup>
+ <WorkingDirectories Include="$(BuildTempDirectory)" />
+ <WorkingDirectories Include="$(BuildOutputDirectory)" />
+
+ <TestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Test.dll" />
+ <TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Test.dll" />
+ <TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersMixedLite.Test.dll" />
+
+ <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Test.xap" />
+ <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Test.xap" />
+ <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLiteMixed.Test.xap" />
+
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.xml" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.xml" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.xml" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.xml" />
+ </ItemGroup>
+
+<!-- **********************************************************************************************
+Targets For Build
+*********************************************************************************************** -->
+
+ <Target Name="_Configured">
+ <Message Text="Building $(TargetVersion) for configuration $(Configuration), platform $(Platform)" Importance="normal" />
+ <Error Text="Unknown or missing value for TargetVersion=[value]" Condition=" '$(BuildTools)' == '' " />
+ </Target>
+
+ <Target Name="_Clean" DependsOnTargets="_Configured">
+ <RemoveDir Directories="@(WorkingDirectories)" Condition="Exists(%(WorkingDirectories.Identity))" />
+ <MSBuild Targets="Clean" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)"
+ Properties="Configuration=$(Configuration);Platform=$(Platform);"
+ />
+ </Target>
+
+ <Target Name="_Compile" DependsOnTargets="_Configured">
+ <MSBuild Targets="Build" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)"
+ Properties="Configuration=$(Configuration);Platform=$(Platform);$(BuildParams)"
+ />
+ </Target>
+
+ <Target Name="_Publish" DependsOnTargets="_Configured">
+ <MakeDir Directories="$(BuildOutputDirectory)" />
+ <Copy SourceFiles="@(PublishItem)" DestinationFolder="$(BuildOutputDirectory)" />
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For Test
+*********************************************************************************************** -->
+
+ <Target Name="_Test" DependsOnTargets="_Configured">
+ <MakeDir Directories="$(BuildTempDirectory)" />
+ <CallTarget Targets="_RunNunit" Condition=" '$(TestFramework)'=='NUNIT' " />
+ <CallTarget Targets="_RunStatLight" Condition=" '$(TestFramework)'=='SILVERLIGHT' " />
+ </Target>
+
+ <Target Name="_RunNunit">
+ <Copy SourceFiles="$(LibDirectory)\NUnit-config\nunit-console.$(TargetFrameworkVersion).config" DestinationFiles="$(NUnitExePath).config" />
+ <Exec Command="&quot;$(NUnitExePath)&quot; /nologo /noshadow %(TestContainer.Identity) /xml:$(BuildTempDirectory)\%(TestContainer.Filename).xml" />
+ </Target>
+
+ <Target Name="_RunStatLight">
+ <Exec Condition=" 'a' == 'b' "
+ Command="&quot;$(StatLightExePath)&quot; -x %(StatLightTestContainer.Identity) --ReportOutputFileType=NUnit --ReportOutputFile=$(BuildTempDirectory)\%(StatLightTestContainer.Filename).xml" />
+ </Target>
+
+</Project>