diff options
author | dotnet-bot <dotnet-bot@microsoft.com> | 2015-09-30 03:10:41 +0300 |
---|---|---|
committer | Michal Strehovský <michals@microsoft.com> | 2015-09-30 03:21:51 +0300 |
commit | e16c8bb5304044c643b5266691703abe2b115550 (patch) | |
tree | b6a2f7368c9648e93df955688555f919bd991c8c /dir.traversal.targets | |
parent | c32c5bc365c53ac021808632b2696fdb11477aad (diff) |
Add initial corert build scripts
Populating repo with build infrastructure from the corefx project. Scripts are copied verbatim from the corefx repo as of commit 1ee4f60145a851adbacbb16e7b0c65bec3ec0d02.
Only minor changes were done to remove corefx-specific workarounds.
Also integrating the type system into the build.
Diffstat (limited to 'dir.traversal.targets')
-rw-r--r-- | dir.traversal.targets | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/dir.traversal.targets b/dir.traversal.targets new file mode 100644 index 000000000..ad5a7102b --- /dev/null +++ b/dir.traversal.targets @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + + <Target Name="BuildAllProjects"> + <PropertyGroup> + <DefaultBuildAllTarget Condition="'$(DefaultBuildAllTarget)'==''">$(MSBuildProjectDefaultTargets)</DefaultBuildAllTarget> + </PropertyGroup> + + <!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity + however since the project names are unique it will essentially force each to run in its own batch --> + <MSBuild Targets="$(DefaultBuildAllTarget)" + Projects="@(Project)" + Condition="'$(SerializeProjects)'=='true'" + Properties="Dummy=%(Identity);DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true" + ContinueOnError="ErrorAndContinue" /> + + <MSBuild Targets="$(DefaultBuildAllTarget)" + Projects="@(Project)" + Condition="'$(SerializeProjects)'!='true'" + Properties="DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true" + BuildInParallel="true" + ContinueOnError="ErrorAndContinue" /> + + <!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed --> + <Error Condition="'$(MSBuildLastTaskResult)'=='false'" /> + </Target> + + <Target Name="CleanAllProjects"> + <PropertyGroup> + <DefaultCleanAllTarget Condition="'$(DefaultCleanAllTarget)'==''">Clean</DefaultCleanAllTarget> + </PropertyGroup> + + <!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity + however since the project names are unique it will essentially force each to run in its own batch --> + <MSBuild Targets="$(DefaultCleanAllTarget)" + Projects="@(Project)" + Condition="'$(SerializeProjects)'=='true'" + Properties="Dummy=%(Identity);CleanAllProjects=true" + ContinueOnError="ErrorAndContinue" /> + + <MSBuild Targets="$(DefaultCleanAllTarget)" + Projects="@(Project)" + Condition="'$(SerializeProjects)'!='true'" + Properties="CleanAllProjects=true" + BuildInParallel="true" + ContinueOnError="ErrorAndContinue" /> + + <!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed --> + <Error Condition="'$(MSBuildLastTaskResult)'=='false'" /> + </Target> + + <Target Name="RestoreAllProjectPackages"> + <Message Importance="High" Text="Restoring project packages..." /> + + <PropertyGroup> + <DefaultRestoreAllPackagesTarget Condition="'$(DefaultRestoreAllPackagesTarget)'==''">RestorePackages</DefaultRestoreAllPackagesTarget> + </PropertyGroup> + + <!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity + however since the project names are unique it will essentially force each to run in its own batch --> + <MSBuild Targets="$(DefaultRestoreAllPackagesTarget)" + Projects="@(Project)" + Condition="'$(SerializeProjects)'=='true'" + Properties="Dummy=%(Identity);RestoreAllPackages=true" + ContinueOnError="ErrorAndContinue" /> + + <MSBuild Targets="$(DefaultRestoreAllPackagesTarget)" + Projects="@(Project)" + Condition="'$(SerializeProjects)'!='true'" + Properties="RestoreAllPackages=true" + BuildInParallel="true" + ContinueOnError="ErrorAndContinue" /> + + <!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed --> + <Error Condition="'$(MSBuildLastTaskResult)'=='false'" /> + </Target> + + <PropertyGroup> + <TraversalBuildDependsOn> + BuildAllProjects; + $(TraversalBuildDependsOn); + </TraversalBuildDependsOn> + + <TraversalCleanDependsOn> + CleanAllProjects; + $(TraversalCleanDependsOn); + </TraversalCleanDependsOn> + + <TraversalRestorePackagesDependsOn> + RestoreAllProjectPackages; + $(TraversalRestorePackagesDependsOn) + </TraversalRestorePackagesDependsOn> + </PropertyGroup> + + <Target Name="Build" DependsOnTargets="$(TraversalBuildDependsOn)" /> + + <Target Name="Clean" DependsOnTargets="$(TraversalCleanDependsOn)" /> + + <Target Name="Rebuild" DependsOnTargets="Clean;Build" /> + + <Target Name="RestorePackages" DependsOnTargets="$(TraversalRestorePackagesDependsOn)" /> + +</Project>
\ No newline at end of file |