Merge pull request #1936 from esdrubal/DotNetRelativeOrAbsolute
[mono.git] / mcs / tools / xbuild / data / 4.0 / Microsoft.CSharp.targets
1 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2         <PropertyGroup>
3                 <DefaultLanguageSourceExtension>.cs</DefaultLanguageSourceExtension>
4                 <Language>C#</Language>
5         </PropertyGroup>
6
7         <PropertyGroup>
8                 <DebugSymbols Condition=" '$(DebugType)' == 'none' ">false</DebugSymbols>
9                 <DebugType    Condition=" '$(DebugType)' == 'none' "></DebugType>
10         </PropertyGroup>
11
12         <PropertyGroup>
13                 <CreateManifestResourceNamesDependsOn></CreateManifestResourceNamesDependsOn>
14                 <CoreCompileDependsOn></CoreCompileDependsOn>
15
16                 <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildToolsPath)\Microsoft.CSharp.targets</MSBuildAllProjects>
17         </PropertyGroup>
18
19         <PropertyGroup>
20                 <NoCompilerStandardLib Condition="'$(NoCompilerStandardLib)'==''">true</NoCompilerStandardLib>
21         </PropertyGroup>
22
23         <ItemGroup>
24                 <DocFileItem Include="$(DocumentationFile)" Condition="'$(DocumentationFile)' != ''"/>
25         </ItemGroup>
26
27         <Target Name="_AddCorlibReference" DependsOnTargets="GetReferenceAssemblyPaths">
28                 <!--
29                 HACK: We don't yet support property functions, so can't calculate FrameworkPathOverride
30                 by calling ToolLocationHelper.GetPathToStandardLibraries. Instead, we search the framework
31                 directories for mscorlib.dll by constructing a filtered item set, and assume it only has
32                 one item.
33                 -->
34                 <ItemGroup Condition="'$(MonoUseMicrosoftBuildDll)' != 'True'">
35                         <_ExplicitReference Include="@(_TargetFrameworkDirectories->'%(FullPath)\mscorlib.dll')" Condition="Exists('%(FullPath)\mscorlib.dll')">
36                                 <Private>false</Private>
37                         </_ExplicitReference>
38                 </ItemGroup>
39                 <PropertyGroup Condition="'$(MonoUseMicrosoftBuildDll)' == 'True'">
40                         <_ExplicitMSCorlibPath>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries ('$(TargetFrameworkIdentifier)', '$(TargetFrameworkVersion)', '$(TargetFrameworkProfile)'))\mscorlib.dll</_ExplicitMSCorlibPath>
41                 </PropertyGroup>
42                 <ItemGroup Condition="'$(MonoUseMicrosoftBuildDll)' == 'True'">
43                         <_ExplicitReference Include="@(_TargetFrameworkDirectories->'%(FullPath)\mscorlib.dll')" Condition="Exists('%(FullPath)\mscorlib.dll')">
44                                 <Private>false</Private>
45                         </_ExplicitReference>
46                 </ItemGroup>
47                 <ItemGroup Condition="'$(MonoUseMicrosoftBuildDll)' == 'True'">
48                         <_ExplicitReference Include="$(_ExplicitMSCorlibPath)" Condition="Exists('$(_ExplicitMSCorlibPath)')">
49                                 <Private>false</Private>
50                         </_ExplicitReference>
51                 </ItemGroup>
52         </Target>
53
54         <Target
55                 Name="CoreCompile"
56                 Inputs="$(MSBuildAllProjects);@(Compile);@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile);
57                         $(KeyOriginatorFile);@(ReferencePath);$(Win32Icon);$(Win32Resource)"
58                 Outputs="@(DocFileItem);@(IntermediateAssembly)"
59                 DependsOnTargets="$(CoreCompileDependsOn)"
60         >
61                 <Csc
62                         AdditionalLibPaths="$(AdditionalLibPaths)"
63                         AddModules="@(AddModules)"
64                         AllowUnsafeBlocks="$(AllowUnsafeBlocks)"
65                         BaseAddress="$(BaseAddress)"
66                         CheckForOverflowUnderflow="$(CheckForOverflowUnderflow)"
67                         CodePage="$(CodePage)"
68                         DebugType="$(DebugType)"
69                         DefineConstants="$(DefineConstants)"
70                         DelaySign="$(DelaySign)"
71                         DisabledWarnings="$(NoWarn)"
72                         DocumentationFile="@(DocFileItem)"
73                         EmitDebugInformation="$(DebugSymbols)"
74                         ErrorReport="$(ErrorReport)"
75                         FileAlignment="$(FileAlignment)"
76                         GenerateFullPaths="$(GenerateFullPaths)"
77                         KeyContainer="$(KeyContainerName)"
78                         KeyFile="$(KeyOriginatorFile)"
79                         LangVersion="$(LangVersion)"
80                         MainEntryPoint="$(StartupObject)"
81                         ModuleAssemblyName="$(ModuleAssemblyName)"
82                         NoConfig="true"
83                         NoLogo="$(NoLogo)"
84                         NoStandardLib="$(NoCompilerStandardLib)"
85                         Optimize="$(Optimize)"
86                         OutputAssembly="@(IntermediateAssembly)"
87                         PdbFile="$(PdbFile)"
88                         Platform="$(PlatformTarget)"
89                         References="@(ReferencePath)"
90                         ResponseFiles="$(CompilerResponseFile)"
91                         Sources="@(Compile)"
92                         TargetType="$(OutputType)"
93                         TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
94                         UseHostCompilerIfAvailable="$(UseHostCompilerIfAvailable)"
95                         Utf8Output="$(Utf8Output)"
96                         WarningLevel="$(WarningLevel)"
97                         WarningsAsErrors="$(WarningsAsErrors)"
98                         WarningsNotAsErrors="$(WarningsNotAsErrors)"
99                         Win32Icon="$(ApplicationIcon)"
100                         Win32Resource="$(Win32Resource)"
101                         Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
102                         ToolExe="$(CscToolExe)"
103                         ToolPath="$(CscToolPath)" />
104
105         </Target>
106
107         <Target Name="CreateManifestResourceNames">
108                 <CreateCSharpManifestResourceName Condition="'@(ResxWithNoCulture)' != ''"
109                         ResourceFiles="@(ResxWithNoCulture)" RootNamespace="$(RootNamespace)">
110                         <Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestResourceWithNoCultureName" />
111                 </CreateCSharpManifestResourceName>
112
113                 <CreateCSharpManifestResourceName Condition="'@(NonResxWithNoCulture)' != ''"
114                         ResourceFiles="@(NonResxWithNoCulture)" RootNamespace="$(RootNamespace)">
115                         <Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestNonResxWithNoCulture" />
116                 </CreateCSharpManifestResourceName>
117
118                 <CreateCSharpManifestResourceName Condition="'@(ResxWithCulture)' != ''"
119                         ResourceFiles="@(ResxWithCulture)" RootNamespace="$(RootNamespace)">
120                         <Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestResourceWithCultureName" />
121                 </CreateCSharpManifestResourceName>
122
123                 <CreateCSharpManifestResourceName Condition="'@(NonResxWithCulture)' != ''"
124                         ResourceFiles="@(NonResxWithCulture)" RootNamespace="$(RootNamespace)">
125                         <Output TaskParameter = "ManifestResourceNames" ItemName = "ManifestNonResxWithCulture" />
126                 </CreateCSharpManifestResourceName>
127         </Target>
128
129         <Import Project="Microsoft.Common.targets" />
130
131         <PropertyGroup Condition="'$(NoCompilerStandardLib)'=='true' and '$(NoStdLib)'!='true'">
132                 <ResolveAssemblyReferencesDependsOn>$(ResolveAssemblyReferencesDependsOn);_AddCorlibReference</ResolveAssemblyReferencesDependsOn>
133         </PropertyGroup>
134
135         <PropertyGroup>
136                 <TargetFrameworkMonikerAssemblyAttributeText Condition="'$(TargetFrameworkMoniker)' != '' and '$(TargetingClr2Framework)' != 'true'">
137 // &lt;autogenerated /&gt;
138 [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(&quot;$(TargetFrameworkMoniker)&quot;, FrameworkDisplayName = &quot;$(TargetFrameworkMonikerDisplayName)&quot;)]
139                 </TargetFrameworkMonikerAssemblyAttributeText>
140         </PropertyGroup>
141
142 </Project>