+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
<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>