diff options
Diffstat (limited to 'src/mscorlib/Tools/Versioning/GenerateVersionInfo.targets')
-rw-r--r-- | src/mscorlib/Tools/Versioning/GenerateVersionInfo.targets | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/mscorlib/Tools/Versioning/GenerateVersionInfo.targets b/src/mscorlib/Tools/Versioning/GenerateVersionInfo.targets new file mode 100644 index 0000000000..00f5282c7c --- /dev/null +++ b/src/mscorlib/Tools/Versioning/GenerateVersionInfo.targets @@ -0,0 +1,114 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <!-- Setup the default file version information --> + <PropertyGroup> + <MajorVersion Condition="'$(MajorVersion)' == ''">1</MajorVersion> + <MinorVersion Condition="'$(MinorVersion)' == ''">0</MinorVersion> + <BuildNumberMajor Condition="'$(BuildNumberMajor)' == ''">0</BuildNumberMajor> + <BuildNumberMinor Condition="'$(BuildNumberMinor)' == ''">0</BuildNumberMinor> + </PropertyGroup> + + <!-- #################################### --> + <!-- Generate Assembly Info --> + <!-- #################################### --> + <PropertyGroup> + <AssemblyVersion Condition="'$(AssemblyVersion)'==''">999.999.999.0</AssemblyVersion> + <CLSCompliant Condition="'$(CLSCompliant)'==''">false</CLSCompliant> + <AssemblyFileVersion Condition="'$(AssemblyFileVersionOverride)'==''">$(MajorVersion).$(MinorVersion).$(BuildNumberMajor).$(BuildNumberMinor)</AssemblyFileVersion> + </PropertyGroup> + + <PropertyGroup> + <GenerateAssemblyInfo Condition="'$(GenerateAssemblyInfo)'==''">true</GenerateAssemblyInfo> + </PropertyGroup> + + <PropertyGroup Condition="'$(GenerateAssemblyInfo)'=='true'"> + <AssemblyInfoFile>$(IntermediateOutputPath)GeneratedAssemblyInfo.cs</AssemblyInfoFile> + <CoreCompileDependsOn>$(CoreCompileDependsOn);GenerateAssemblyInfo</CoreCompileDependsOn> + </PropertyGroup> + + <Target Name="GenerateAssemblyInfo" + Inputs="$(MSBuildProjectFile)" + Outputs="$(AssemblyInfoFile)" + Condition="'$(GenerateAssemblyInfo)'=='true'"> + + <Error Condition="!Exists('$(IntermediateOutputPath)')" Text="GenerateAssemblyInfo failed because IntermediateOutputPath isn't set to a valid directory" /> + + <ItemGroup> + <AssemblyInfoUsings Include="using System%3B" /> + <AssemblyInfoUsings Include="using System.Reflection%3B" /> + <AssemblyInfoLines Include="[assembly:AssemblyTitle("$(AssemblyName)")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyDescription("$(AssemblyName)")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyDefaultAlias("$(AssemblyName)")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyCompany("Microsoft Corporation")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyProduct("Microsoft\x00ae .NET Framework")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyCopyright("\x00a9 Microsoft Corporation. All rights reserved.")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyVersion("$(AssemblyVersion)")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyFileVersion("$(AssemblyFileVersion)")]" /> + <AssemblyInfoLines Include="[assembly:AssemblyInformationalVersion(@"$(AssemblyFileVersion)$(BuiltByString)")]" /> + <AssemblyInfoLines Condition="'$(CLSCompliant)'=='true'" Include="[assembly:CLSCompliant(true)]" /> + </ItemGroup> + + <WriteLinesToFile File="$(AssemblyInfoFile)" + Lines="@(AssemblyInfoUsings);@(AssemblyInfoLines)" + Overwrite="true" /> + + <ItemGroup> + <Compile Include="$(AssemblyInfoFile)" /> + <FileWrites Include="$(AssemblyInfoFile)" /> + </ItemGroup> + </Target> + + <!-- #################################### --> + <!-- Generate Native Version Info --> + <!-- #################################### --> + <PropertyGroup Condition="'$(GenerateNativeVersionInfo)'=='true'"> + <NativeVersionHeaderFile>$(IntermediateOutputPath)GeneratedVersion.h</NativeVersionHeaderFile> + <BeforeResourceCompileTargets>$(BeforeResourceCompileTargets);GenerateVersionHeader</BeforeResourceCompileTargets> + <Win32Resource>$(IntermediateOutputPath)\NativeVersion.res</Win32Resource> + <CoreCompileDependsOn>$(CoreCompileDependsOn);NativeResourceCompile</CoreCompileDependsOn> + </PropertyGroup> + + <Target Name="GenerateVersionHeader" + Condition="'$(GenerateNativeVersionInfo)'=='true'" + Inputs="$(MSBuildProjectFile)" + Outputs="$(NativeVersionHeaderFile)"> + + <ItemGroup> + <NativeVersionLines Include="#define VER_COMPANYNAME_STR "Microsoft Corporation"" /> + <NativeVersionLines Include="#define VER_FILEDESCRIPTION_STR "$(AssemblyName)"" /> + <NativeVersionLines Include="#define VER_INTERNALNAME_STR VER_FILEDESCRIPTION_STR" /> + <NativeVersionLines Include="#define VER_ORIGINALFILENAME_STR VER_FILEDESCRIPTION_STR" /> + <NativeVersionLines Include="#define VER_PRODUCTNAME_STR "Microsoft\xae .NET Framework"" /> + <NativeVersionLines Include="#define VER_PRODUCTVERSION $(MajorVersion),$(MinorVersion),$(BuildNumberMajor),$(BuildNumberMinor)" /> + <NativeVersionLines Include="#define VER_PRODUCTVERSION_STR "$(MajorVersion).$(MinorVersion).$(BuildNumberMajor).$(BuildNumberMinor)"" /> + <NativeVersionLines Include="#define VER_FILEVERSION $(MajorVersion),$(MinorVersion),$(BuildNumberMajor),$(BuildNumberMinor)" /> + <NativeVersionLines Include="#define VER_FILEVERSION_STR "$(MajorVersion).$(MinorVersion).$(BuildNumberMajor).$(BuildNumberMinor)"" /> + <NativeVersionLines Include="#define VER_LEGALCOPYRIGHT_STR "\xa9 Microsoft Corporation. All rights reserved."" /> + <NativeVersionLines Condition="'$(Configuration)'=='Debug'" Include="#define VER_DEBUG VS_FF_DEBUG" /> + <NativeVersionLines Condition="'$(Configuration)'!='Debug'" Include="#define VER_DEBUG 0" /> + </ItemGroup> + + <WriteLinesToFile File="$(NativeVersionHeaderFile)" + Lines="@(NativeVersionLines)" + Overwrite="true" /> + + <ItemGroup> + <FileWrites Include="$(NativeVersionHeaderFile)" /> + </ItemGroup> + </Target> + + + <PropertyGroup Condition="'$(GenerateNativeVersionInfo)'=='true'"> + <WindowsSdkDir Condition="'$(WindowsSdkDir)'==''">$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1@InstallationFolder)</WindowsSdkDir> + <RCPath Condition="'$(RCPath)' == ''">$(WindowsSdkDir)bin\x86\rc.exe</RCPath> + </PropertyGroup> + + <Target Name="NativeResourceCompile" + Condition="'$(GenerateNativeVersionInfo)'=='true'" + DependsOnTargets="GenerateVersionHeader" + Inputs="$(MsBuildThisFileDirectory)NativeVersion.rc" + Outputs="$(Win32Resource)"> + + <Exec Command=""$(RCPath)" /nologo /x /i "$(IntermediateOutputPath.TrimEnd('\'))" /i "$(WindowsSdkDir)Include\$(WindowsSDKVersion)um" /i "$(WindowsSdkDir)Include\$(WindowsSDKVersion)\shared" /D _UNICODE /D UNICODE /l"0x0409" /r /fo "$(Win32Resource)" "$(MsBuildThisFileDirectory)NativeVersion.rc"" /> + + </Target> +</Project> |