|
9 | 9 | <Tailcalls>true</Tailcalls> |
10 | 10 | <TargetFrameworkCondition="'$(TargetFramework)'==''">net40</TargetFramework> |
11 | 11 | <!-- Use a 4.0 proto compiler--> |
12 | | - <protoCLIDirCondition="'$(protoCLIDir)' == ''">net40</protoCLIDir> |
| 12 | + <protoCLIDir>4.0</protoCLIDir> |
13 | 13 | <LkgPath>$(FSharpSourcesRoot)\..\lib\bootstrap\4.0</LkgPath> |
14 | 14 | <FsLexUnicode>true</FsLexUnicode> |
15 | 15 | <ProjectLanguage>FSharp</ProjectLanguage> |
|
54 | 54 | <PropertyGroupCondition="'$(Configuration)'=='Debug'"> |
55 | 55 | <DefineConstants>DEBUG; $(DefineConstants)</DefineConstants> |
56 | 56 | <Optimize>false</Optimize> |
| 57 | + <ConfigurationOutputDirectory>debug</ConfigurationOutputDirectory> |
57 | 58 | <!-- These flags provide a better debugging experience. Locals should be visible.--> |
58 | 59 | <OtherFlags>$(OtherFlags) --no-jit-optimize --jit-tracking</OtherFlags> |
59 | 60 | <DefineConstants>CODE_ANALYSIS; $(DefineConstants)</DefineConstants> |
60 | 61 | </PropertyGroup> |
61 | 62 |
|
62 | 63 | <PropertyGroupCondition="'$(Configuration)'=='Release'"> |
63 | 64 | <Optimize>true</Optimize> |
| 65 | + <ConfigurationOutputDirectory>release</ConfigurationOutputDirectory> |
64 | 66 | </PropertyGroup> |
65 | 67 |
|
66 | 68 | <!-- Flags used to build the bootstrap compiler. |
67 | 69 | --> |
68 | 70 | <PropertyGroupCondition="'$(Configuration)'=='Proto'"> |
69 | 71 | <Optimize>true</Optimize> |
70 | 72 | <DefineConstants>DEBUG;NO_STRONG_NAMES;$(DefineConstants)</DefineConstants> |
| 73 | + <ConfigurationOutputDirectory>proto</ConfigurationOutputDirectory> |
71 | 74 | </PropertyGroup> |
72 | 75 |
|
73 | 76 | <PropertyGroup> |
|
76 | 79 |
|
77 | 80 | <!-- Always qualify the IntermediateOutputPath by the TargetFramework if any exists--> |
78 | 81 | <PropertyGroup> |
79 | | - <IntermediateOutputPath>obj\$(Configuration)\$(TargetFramework)\</IntermediateOutputPath> |
| 82 | + <IntermediateOutputPath>obj\$(ConfigurationOutputDirectory)\$(TargetFramework)\</IntermediateOutputPath> |
80 | 83 | </PropertyGroup> |
81 | 84 |
|
82 | 85 | <!-- v2.0-specific flags--> |
83 | | - <PropertyGroupCondition="'$(TargetFramework)'=='net20' or '$(TargetFramework)'=='mono20'"> |
| 86 | + <PropertyGroupCondition="'$(TargetFramework)'=='net20'"> |
84 | 87 | <!-- If 3.5 is not configured explicitly, use 2.0--> |
85 | 88 | <TargetFrameworkVersionCondition="'$(TargetFrameworkVersion)'==''">v2.0</TargetFrameworkVersion> |
| 89 | + <TargetFrameworkVersionShort>2.0</TargetFrameworkVersionShort> |
86 | 90 | <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants> |
87 | 91 | <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants> |
88 | 92 | <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants> |
|
98 | 102 |
|
99 | 103 | <PropertyGroupCondition="'$(TargetFramework)'=='net40'"> |
100 | 104 | <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
| 105 | + <TargetFrameworkVersionShort>4.0</TargetFrameworkVersionShort> |
101 | 106 | <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants> |
102 | 107 | <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants> |
103 | 108 | <DefineConstants>$(DefineConstants);BE_SECURITY_TRANSPARENT</DefineConstants> |
|
112 | 117 | <!-- Target MonoAndroid and MonoTouch--> |
113 | 118 | <PropertyGroupCondition="'$(TargetFramework)'=='mono21'"> |
114 | 119 | <TargetFrameworkVersion>v2.1</TargetFrameworkVersion> |
| 120 | + <TargetFrameworkVersionShort>2.1</TargetFrameworkVersionShort> |
115 | 121 | <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants> |
116 | 122 | <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants> |
117 | 123 | <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants> |
118 | 124 | <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants> |
119 | 125 | <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants> |
120 | 126 | <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
121 | 127 | <DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants> |
122 | | - <AssemblySearchPaths>/Developer/MonoAndroid/usr/lib/mono/2.1/;$(AssemblySearchPaths)</AssemblySearchPaths> |
| 128 | + <AssemblySearchPaths>$(FSharpSourcesRoot)\..\dependencies\mono\2.1;$(AssemblySearchPaths)</AssemblySearchPaths> |
123 | 129 | </PropertyGroup> |
124 | 130 |
|
125 | 131 |
|
126 | 132 | <!-- Target Silverlight 3.0--> |
127 | 133 | <PropertyGroupCondition="'$(TargetFramework)'=='sl3'"> |
128 | 134 | <TargetFrameworkVersion>v3.0</TargetFrameworkVersion> |
| 135 | + <TargetFrameworkVersionShort>sl3</TargetFrameworkVersionShort> |
129 | 136 | <DefineConstants>$(DefineConstants);SILVERLIGHT</DefineConstants> |
130 | 137 | <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants> |
131 | 138 | <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants> |
|
204 | 211 | <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
205 | 212 | <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier> |
206 | 213 | <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
| 214 | + <TargetFrameworkVersionShort>sl4</TargetFrameworkVersionShort> |
207 | 215 | <SilverlightVersion>v4.0</SilverlightVersion> |
208 | 216 | </PropertyGroup> |
209 | 217 |
|
|
249 | 257 | <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier> |
250 | 258 | <TargetFrameworkVersion>v5.0</TargetFrameworkVersion> |
251 | 259 | <SilverlightVersion>v5.0</SilverlightVersion> |
| 260 | + <TargetFrameworkVersionShort>$(TargetFramework)</TargetFrameworkVersionShort> |
252 | 261 | <FrameworkRegistryBase>Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier)</FrameworkRegistryBase> |
253 | 262 | <AssemblySearchPaths>$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0</AssemblySearchPaths> |
254 | 263 | </PropertyGroup> |
|
295 | 304 | <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
296 | 305 | <Tailcalls>false</Tailcalls> |
297 | 306 | <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion> |
| 307 | + <TargetFrameworkVersionShort>$(TargetFramework)</TargetFrameworkVersionShort> |
298 | 308 | <!-- It would be better to use MSBuild resolution here, but the TargetFrameworkIdentifier etc. aren't set up quite correctly as yet--> |
299 | 309 | <OtherFlags>$(OtherFlags) --simpleresolution -r:"C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone\mscorlib.dll" </OtherFlags> |
300 | 310 | </PropertyGroup> |
|
345 | 355 | <DefineConstants>$(DefineConstants);FX_NO_TUPLE</DefineConstants> |
346 | 356 | <DefineConstants>$(DefineConstants);FX_NO_DELEGATE_CREATE_DELEGATE_FROM_STATIC_METHOD</DefineConstants> |
347 | 357 | <DefineConstants>$(DefineConstants)</DefineConstants> |
| 358 | + <TargetFrameworkVersionShort>$(TargetFramework)</TargetFrameworkVersionShort> |
348 | 359 | <!-- It would be better to use MSBuild resolution here, but the TargetFrameworkIdentifier etc. aren't set up quite correctly as yet--> |
349 | 360 | <OtherFlags>$(OtherFlags) --simpleresolution -r:"C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\mscorlib.dll" -r:"C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\System.dll"</OtherFlags> |
350 | 361 | </PropertyGroup> |
|
389 | 400 | <!-- Target CompactFramework 3.5--> |
390 | 401 | <PropertyGroupCondition="'$(TargetFramework)'=='net35-cf'"> |
391 | 402 | <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
| 403 | + <TargetFrameworkVersionShort>3.5</TargetFrameworkVersionShort> |
392 | 404 | <TargetFrameworkIdentifier>CompactFramework</TargetFrameworkIdentifier> |
393 | 405 | <DefineConstants>$(DefineConstants);FX_ATLEAST_COMPACT_FRAMEWORK_35</DefineConstants> |
394 | 406 | <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants> |
|
439 | 451 | <!-- Build with LKG compiler (location is determined by Microsoft.FSharp.targets). The output compiler has suffix "-proto"--> |
440 | 452 | <PropertyGroupCondition=" '$(BuildWith)' == 'LKG' And '$(ProjectLanguage)' == 'FSharp'"> |
441 | 453 | <FsBuildSuffix>-proto</FsBuildSuffix> |
442 | | - <OutputPath>$(FSharpSourcesRoot)\..\$(Configuration)\$(protoCLIDir)\bin</OutputPath> |
| 454 | + <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkVersionShort)</OutputPath> |
443 | 455 | </PropertyGroup> |
444 | 456 |
|
445 | 457 | <!-- Build with prototype compiler (location is given by settings below). The output is the final bootstrapped compiler--> |
446 | 458 | <PropertyGroupCondition=" '$(BuildWith)' == ''"> |
447 | | - <FSharpTargetsDir>$(FSharpSourcesRoot)\..\Proto\$(protoCLIDir)\bin</FSharpTargetsDir> |
448 | | - |
449 | | - <FscToolPath>$(FSharpSourcesRoot)\..\Proto\$(protoCLIDir)\bin</FscToolPath> |
| 459 | + <FscToolPath>$(FSharpSourcesRoot)\..\lib\proto\$(protoCLIDir)</FscToolPath> |
450 | 460 | <FscToolExe>fsc-proto.exe</FscToolExe> |
451 | | - <OutputPath>$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFramework)\bin</OutputPath> |
| 461 | + <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkVersionShort)</OutputPath> |
452 | 462 | </PropertyGroup> |
453 | 463 |
|
454 | 464 |
|
455 | 465 |
|
456 | 466 | <!-- Include the proto targets file when building the final compiler suing the proto--> |
457 | | - <ImportProject="..\Proto\$(protoCLIDir)\bin\Microsoft.FSharp-proto.targets" |
458 | | -Condition="Exists('..\Proto\$(protoCLIDir)\bin\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == '' AND '$(ProjectLanguage)' == 'FSharp'"/> |
| 467 | + <ImportProject="..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets" |
| 468 | +Condition="Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == '' AND '$(ProjectLanguage)' == 'FSharp'"/> |
459 | 469 | <!-- Include the bootstrap targets file when building the proto compiler using the bootstrap--> |
460 | 470 | <!-- Also include it if Proto targets file doesn't exist, e.g. when cleaning the build with /t:Clean--> |
461 | 471 | <ImportProject="$(LkgPath)\Microsoft.FSharp.targets" |
462 | | -Condition="(!Exists('..\Proto\$(protoCLIDir)\bin\Microsoft.FSharp-proto.targets') OR '$(BuildWith)' == 'LKG') AND '$(ProjectLanguage)' == 'FSharp'" /> |
| 472 | +Condition="(!Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') OR '$(BuildWith)' == 'LKG') AND '$(ProjectLanguage)' == 'FSharp'" /> |
463 | 473 | <ImportProject="Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets" |
464 | 474 | Condition="'$(TargetFramework)'=='sl3' or '$(TargetFramework)'=='sl4' or '$(TargetFramework)'=='sl5' or '$(TargetFramework)'=='sl5-compiler'"/> |
465 | 475 |
|
|