* xbuild/Microsoft.Common.targets: Make targets extensible. Add
authorAnkit Jain <radical@corewars.org>
Wed, 25 Feb 2009 21:20:19 +0000 (21:20 -0000)
committerAnkit Jain <radical@corewars.org>
Wed, 25 Feb 2009 21:20:19 +0000 (21:20 -0000)
before/after hooks.

svn path=/trunk/mcs/; revision=128034

mcs/tools/xbuild/ChangeLog
mcs/tools/xbuild/xbuild/Microsoft.Common.targets

index 589adeff977f30ca8faedff7dfda964354877b12..58a9413abdc53538320ad2f0d9ff4d0c0dfb4db7 100644 (file)
@@ -1,3 +1,8 @@
+2009-02-26  Ankit Jain  <jankit@novell.com>
+
+       * xbuild/Microsoft.Common.targets: Make targets extensible. Add
+       before/after hooks.
+
 2009-02-25  Ankit Jain  <jankit@novell.com>
 
        * xbuild/Microsoft.Common.targets: Use obj/$(Config) as the default intermediate
index 05059f7e5053c213d279eb570dc34a5b5b70499e..a54d5f3feeed24ab8085a9d44dd4ad4dbacf760e 100644 (file)
@@ -35,7 +35,6 @@
                <TargetPath Include="$(OutputPath)" />
        </ItemGroup>
 
-
        <Target Name="PrepareForBuild">
                <Message Importance="High" Text="Configuration: $(Configuration) Platform: $(Platform)"/>
                
        </Target>
 -->
 
+       <PropertyGroup>
+               <BuildDependsOn>
+                       BeforeBuild;
+                       CoreBuild;
+                       AfterBuild
+               </BuildDependsOn>
+       </PropertyGroup>
+
+       <Target Name="BeforeBuild"/>
+       <Target Name="AfterBuild"/>
+
+       <Target Name="Build" DependsOnTargets="$(BuildDependsOn)" Outputs="$(TargetPath)"/>
+
+       <PropertyGroup>
+               <CoreBuildDependsOn>
+                       PrepareForBuild;
+                       ResolveAssemblyReferences;
+                       ResolveProjectReferences;
+                       BuildResources;
+                       CoreCompile;
+                       DeployOutputFiles
+               </CoreBuildDependsOn>
+       </PropertyGroup>
+
        <Target
-               Name="Build"
-               DependsOnTargets="PrepareForBuild;ResolveAssemblyReferences;ResolveProjectReferences;BuildResources;CoreCompile;DeployOutputFiles"
+               Name="CoreBuild"
+               DependsOnTargets="$(CoreBuildDependsOn)"
                Outputs="$(OutputPath)$(AssemblyName)$(TargetExt)"
        />
 
 
        <Target Name="GetTargetPath" Outputs="@(TargetPath->'%(FullPath)\$(AssemblyName)$(TargetExt)')"/>
 
+       <PropertyGroup>
+               <CleanDependsOn>
+                       BeforeClean;
+                       CoreClean;
+                       AfterClean
+               </CleanDependsOn>
+       </PropertyGroup>
+
        <!-- FIXME: Include all generated files -->
-       <Target Name="Clean">
+       <Target Name="Clean" DependsOnTargets="$(CleanDependsOn)"/>
+
+       <!-- Override in project to run before/after clean tasks -->
+       <Target Name="BeforeClean" />
+       <Target Name="AfterClean" />
+
+       <Target Name="CoreClean">
                <Message Text="Trying to delete $(OutputPath)$(AssemblyName)$(TargetExt)"/>
                <Delete Files="$(OutputPath)$(AssemblyName)$(TargetExt)" />
        </Target>