Skip to content

Commit

Permalink
Don't rebuild the project when nothing changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
enyim committed Apr 12, 2011
1 parent 9c574e6 commit 6a9c3bc
Showing 1 changed file with 6 additions and 39 deletions.
45 changes: 6 additions & 39 deletions build/VersionInfo.targets
Expand Up @@ -26,44 +26,19 @@
</Task>
</UsingTask>

<UsingTask TaskName="GetRandomFileName" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<Name ParameterType="System.String" Output="true" />
<Format ParameterType="System.String" Required="false"/>
</ParameterGroup>
<Task>
<Code Type="Fragment" Language="cs">
<![CDATA[
var tmp = System.IO.Path.GetRandomFileName();
Name = String.IsNullOrEmpty(Format) ? tmp : String.Format(Format, tmp);
]]>
</Code>
</Task>
</UsingTask>

<PropertyGroup>
<ShouldGenerate Condition="$(IsReleaseBuild) == 'true'">true</ShouldGenerate>
<GeneratedAssemblyInfo>obj\$(Configuration)\__versioninfo.cs</GeneratedAssemblyInfo>
<GitDescribe>obj\$(Configuration)\__gitinfo.cs</GitDescribe>
<GitTagMatch Condition=" '$(GitTagMatch)' == '' ">*</GitTagMatch>
</PropertyGroup>

<PropertyGroup Condition="$(ShouldGenerate) == 'true'">
<AssemblyOriginatorKeyFile></AssemblyOriginatorKeyFile>
</PropertyGroup>

<PropertyGroup>
<GitTagMatch Condition=" '$(GitTagMatch)' == '' ">*</GitTagMatch>
</PropertyGroup>

<Target Name="CreateRandomFileNames">
<MakeDir Directories="obj\$(Configuration)" ContinueOnError="true" />
<GetRandomFileName Format="obj\$(Configuration)\{0}.cs">
<Output TaskParameter="Name" PropertyName="GeneratedAssemblyInfo" />
</GetRandomFileName>
<GetRandomFileName Format="obj\$(Configuration)\{0}.txt">
<Output TaskParameter="Name" PropertyName="GitDescribe" />
</GetRandomFileName>
</Target>

<Target Name="CreateAssemblyInfoFromGit" DependsOnTargets="CreateRandomFileNames" Condition="$(ShouldGenerate) == 'true'">
<MakeDir Directories="obj\$(Configuration)" ContinueOnError="true" />
<Exec Command="git describe --tags --match $(GitTagMatch) > $(GitDescribe)" />
<ReadLinesFromFile File="$(GitDescribe)">
<Output TaskParameter="Lines" PropertyName="_Describe"/>
Expand All @@ -81,26 +56,18 @@
[assembly: System.Reflection.AssemblyVersion(&quot;$(_AssemblyVersion)&quot;)]" />
</Target>

<Target Name="CreateStaticAssemblyInfo" DependsOnTargets="CreateRandomFileNames" Condition="$(ShouldGenerate) != 'true'">
<Delete Files="$(GeneratedAssemblyInfo)" />
<Target Name="CreateStaticAssemblyInfo" Condition="$(ShouldGenerate) != 'true' And !Exists('$(GeneratedAssemblyInfo)')">
<MakeDir Directories="obj\$(Configuration)" ContinueOnError="true" />
<WriteLinesToFile File="$(GeneratedAssemblyInfo)" Lines="
[assembly: System.Reflection.AssemblyTitle(&quot;2.4.6-custom&quot;)]
[assembly: System.Reflection.AssemblyFileVersion(&quot;2.4.6.0&quot;)]
[assembly: System.Reflection.AssemblyVersion(&quot;2.4.6.0&quot;)]" />
</Target>

<Target Name="Cleanup">
<Delete Files="$(GeneratedAssemblyInfo)" Condition="'$(GeneratedAssemblyInfo)' != ''" ContinueOnError="true" />
<Delete Files="$(GitDescribe)" Condition="'$(GitDescribe)' != ''" ContinueOnError="true" />
</Target>

<Target Name="BeforeBuild" DependsOnTargets="CreateAssemblyInfoFromGit;CreateStaticAssemblyInfo">
<CreateItem Include="$(GeneratedAssemblyInfo)">
<Output TaskParameter="Include" ItemName="Compile"/>
</CreateItem>
</Target>

<Target Name="AfterBuild">
<CallTarget Targets="Cleanup" />
</Target>
</Project>

0 comments on commit 6a9c3bc

Please sign in to comment.