|
12 | 12 | <protoCLIDir>4.0</protoCLIDir> |
13 | 13 | <LkgPath>$(FSharpSourcesRoot)\..\lib\bootstrap\4.0</LkgPath> |
14 | 14 | <FsLexUnicode>true</FsLexUnicode> |
15 | | - <ProjectLanguage>FSharp</ProjectLanguage> |
16 | 15 | <OtherFlags>$(OtherFlags) --times</OtherFlags> |
17 | 16 | <NoWarn>$(NoWarn);69;65;54;61;75</NoWarn> |
18 | 17 | <DebugSymbols>true</DebugSymbols> |
|
23 | 22 | <VersionFile>$(FSharpSourcesRoot)\source-build-version</VersionFile> |
24 | 23 | <VersionFileCondition="'$(TargetFramework)' == 'net20'">$(FSharpSourcesRoot)\source-build-version-2.3.0.0</VersionFile> |
25 | 24 | <VersionFileCondition="'$(TargetFramework)' == 'net40'">$(FSharpSourcesRoot)\source-build-version-4.3.0.0</VersionFile> |
| 25 | + <VersionFileCondition="'$(TargetFramework)' == 'portable-net4+sl4+wp71+win8'">$(FSharpSourcesRoot)\source-build-version-2.3.5.0</VersionFile> |
| 26 | +<!-- |
| 27 | +Some other NuGET monikers to support in the future, see http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Package_Conventions |
| 28 | +
|
| 29 | + <VersionFile Condition="'$(TargetFramework)' == 'portable-windows8+net45'">$(FSharpSourcesRoot)\source-build-version-2.3.6.0</VersionFile> |
| 30 | + <VersionFile Condition="'$(TargetFramework)' == 'windows8'">$(FSharpSourcesRoot)\source-build-version-2.3.7.0</VersionFile> |
| 31 | + <VersionFile Condition="'$(TargetFramework)' == 'windowsphone8'">$(FSharpSourcesRoot)\source-build-version-2.3.8.0</VersionFile> |
| 32 | +--> |
26 | 33 | </PropertyGroup> |
27 | 34 |
|
28 | 35 | <!-- We sign FSharp.Core with the Microsoft key and use delay-signing.--> |
|
58 | 65 | <!-- These flags provide a better debugging experience. Locals should be visible.--> |
59 | 66 | <OtherFlags>$(OtherFlags) --no-jit-optimize --jit-tracking</OtherFlags> |
60 | 67 | <DefineConstants>CODE_ANALYSIS; $(DefineConstants)</DefineConstants> |
| 68 | + <BuildWith>LKG</BuildWith> |
61 | 69 | </PropertyGroup> |
62 | 70 |
|
63 | 71 | <PropertyGroupCondition="'$(Configuration)'=='Release'"> |
64 | 72 | <Optimize>true</Optimize> |
65 | 73 | <ConfigurationOutputDirectory>release</ConfigurationOutputDirectory> |
| 74 | + <BuildWith>LKG</BuildWith> |
66 | 75 | </PropertyGroup> |
67 | 76 |
|
68 | 77 | <!-- Flags used to build the bootstrap compiler. |
|
82 | 91 | <PropertyGroupCondition="'$(TargetFramework)'=='net20'"> |
83 | 92 | <!-- If 3.5 is not configured explicitly, use 2.0--> |
84 | 93 | <TargetFrameworkVersionCondition="'$(TargetFrameworkVersion)'==''">v2.0</TargetFrameworkVersion> |
85 | | - <TargetFrameworkVersionShort>2.0</TargetFrameworkVersionShort> |
| 94 | + <TargetFrameworkOutputDirectory>2.0</TargetFrameworkOutputDirectory> |
86 | 95 | <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants> |
87 | 96 | <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants> |
88 | 97 | <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants> |
|
98 | 107 |
|
99 | 108 | <PropertyGroupCondition="'$(TargetFramework)'=='net40'"> |
100 | 109 | <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
101 | | - <TargetFrameworkVersionShort>4.0</TargetFrameworkVersionShort> |
| 110 | + <TargetFrameworkOutputDirectory>4.0</TargetFrameworkOutputDirectory> |
102 | 111 | <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants> |
103 | 112 | <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants> |
104 | 113 | <DefineConstants>$(DefineConstants);BE_SECURITY_TRANSPARENT</DefineConstants> |
|
113 | 122 | <!-- Target MonoAndroid and MonoTouch--> |
114 | 123 | <PropertyGroupCondition="'$(TargetFramework)'=='mono21'"> |
115 | 124 | <TargetFrameworkVersion>v2.1</TargetFrameworkVersion> |
116 | | - <TargetFrameworkVersionShort>2.1</TargetFrameworkVersionShort> |
| 125 | + <TargetFrameworkOutputDirectory>2.1</TargetFrameworkOutputDirectory> |
117 | 126 | <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants> |
118 | 127 | <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants> |
119 | 128 | <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants> |
|
125 | 134 | </PropertyGroup> |
126 | 135 |
|
127 | 136 |
|
| 137 | +<!-- Target Portable--> |
| 138 | + <PropertyGroupCondition="'$(TargetFramework)'=='portable-net4+sl4+wp71+win8'"> |
| 139 | + |
| 140 | + <TargetFrameworkProfile>Profile47</TargetFrameworkProfile> |
| 141 | + <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
| 142 | + <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory> |
| 143 | + |
| 144 | + <DefineConstants>$(DefineConstants);FSHARP_CORE_PORTABLE</DefineConstants> |
| 145 | + <DefineConstants>$(DefineConstants);FX_NO_CONCURRENT_DICTIONARY</DefineConstants> |
| 146 | + <DefineConstants>$(DefineConstants);FX_ATLEAST_PORTABLE</DefineConstants> |
| 147 | + <DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants> |
| 148 | + <DefineConstants>$(DefineConstants);FX_NO_DEBUG_PROXIES</DefineConstants> |
| 149 | + <DefineConstants>$(DefineConstants);FX_NO_EXIT</DefineConstants> |
| 150 | + <DefineConstants>$(DefineConstants);FX_NO_CHAR_PARSE</DefineConstants> |
| 151 | + <DefineConstants>$(DefineConstants);FX_NO_DEFAULT_DEPENDENCY_TYPE</DefineConstants> |
| 152 | + <DefineConstants>$(DefineConstants);FX_SIMPLE_SECURITY_PERMISSIONS</DefineConstants> |
| 153 | + <DefineConstants>$(DefineConstants);FX_NO_TRUNCATE</DefineConstants> |
| 154 | + <DefineConstants>$(DefineConstants);FX_NO_CULTURE_INFO_ARGS</DefineConstants> |
| 155 | + <DefineConstants>$(DefineConstants);FX_NO_REFLECTION_MODULES</DefineConstants> |
| 156 | + <DefineConstants>$(DefineConstants);FX_NO_REFLECTION_METADATA_TOKENS</DefineConstants> |
| 157 | + <DefineConstants>$(DefineConstants);FX_NO_TO_LOWER_INVARIANT</DefineConstants> |
| 158 | + <DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants> |
| 159 | + <DefineConstants>$(DefineConstants);FX_NO_BASED_ARRAYS</DefineConstants> |
| 160 | + <DefineConstants>$(DefineConstants);FX_NO_DOUBLE_BIT_CONVERTER</DefineConstants> |
| 161 | + <DefineConstants>$(DefineConstants);FX_NO_BINARY_SERIALIZATION</DefineConstants> |
| 162 | + <DefineConstants>$(DefineConstants);FX_NO_ASCII_ENCODING</DefineConstants> |
| 163 | + <DefineConstants>$(DefineConstants);FX_NO_DEFAULT_ENCODING</DefineConstants> |
| 164 | + <DefineConstants>$(DefineConstants);FX_NO_FILE_OPTIONS</DefineConstants> |
| 165 | + <DefineConstants>$(DefineConstants);FX_NO_NONBLOCK_IO</DefineConstants> |
| 166 | + <DefineConstants>$(DefineConstants);FX_NO_COMMAND_LINE_ARGS</DefineConstants> |
| 167 | + <DefineConstants>$(DefineConstants);FX_NO_ENVIRONMENT</DefineConstants> |
| 168 | + <DefineConstants>$(DefineConstants);FX_NO_PROCESS_START</DefineConstants> |
| 169 | + <DefineConstants>$(DefineConstants);FX_NO_APP_DOMAINS</DefineConstants> |
| 170 | + <DefineConstants>$(DefineConstants);FX_NO_PROCESS_DIAGNOSTICS</DefineConstants> |
| 171 | + <DefineConstants>$(DefineConstants);FX_NO_IOBSERVABLE</DefineConstants> |
| 172 | + <DefineConstants>$(DefineConstants);FX_NO_WEB_CLIENT</DefineConstants> |
| 173 | + <DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants> |
| 174 | + <DefineConstants>$(DefineConstants);FX_NO_GET_HASH_CODE_HELPER</DefineConstants> |
| 175 | + <DefineConstants>$(DefineConstants);FX_NO_COMVISIBLE</DefineConstants> |
| 176 | + <DefineConstants>$(DefineConstants);FX_NO_ICLONEABLE</DefineConstants> |
| 177 | + <DefineConstants>$(DefineConstants);FX_NO_SECURITY_PERMISSIONS</DefineConstants> |
| 178 | + <DefineConstants>$(DefineConstants);FX_NO_SYSTEM_CONSOLE</DefineConstants> |
| 179 | + <DefineConstants>$(DefineConstants);FX_NO_ARRAY_KEY_SORT</DefineConstants> |
| 180 | + <DefineConstants>$(DefineConstants);FX_NO_REFLECTION_EMIT</DefineConstants> |
| 181 | + <DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants> |
| 182 | + <DefineConstants>$(DefineConstants);FX_EVENTWAITHANDLE_NO_IDISPOSABLE</DefineConstants> |
| 183 | + <DefineConstants>$(DefineConstants);FX_NO_REGISTERED_WAIT_HANDLES</DefineConstants> |
| 184 | + <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
| 185 | + <DefineConstants>$(DefineConstants);FX_NO_THREAD</DefineConstants> |
| 186 | + <DefineConstants>$(DefineConstants);FX_NO_THREADPOOL</DefineConstants> |
| 187 | + <DefineConstants>$(DefineConstants);FX_NO_WAITONE_MILLISECONDS</DefineConstants> |
| 188 | + <DefineConstants>$(DefineConstants);FX_NO_TPL_PARALLEL</DefineConstants> |
| 189 | + <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants> |
| 190 | + <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants> |
| 191 | + <DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants> |
| 192 | + <DefineConstants>$(DefineConstants);DONT_INCLUDE_DEPRECATED</DefineConstants> |
| 193 | + <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE</DefineConstants> |
| 194 | + |
| 195 | + </PropertyGroup> |
| 196 | + |
128 | 197 | <!-- Target Silverlight 3.0--> |
129 | 198 | <PropertyGroupCondition="'$(TargetFramework)'=='sl3'"> |
130 | 199 | <TargetFrameworkVersion>v3.0</TargetFrameworkVersion> |
131 | | - <TargetFrameworkVersionShort>sl3</TargetFrameworkVersionShort> |
| 200 | + <TargetFrameworkOutputDirectory>sl3</TargetFrameworkOutputDirectory> |
132 | 201 | <DefineConstants>$(DefineConstants);SILVERLIGHT</DefineConstants> |
133 | 202 | <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants> |
134 | 203 | <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants> |
|
207 | 276 | <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
208 | 277 | <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier> |
209 | 278 | <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
210 | | - <TargetFrameworkVersionShort>sl4</TargetFrameworkVersionShort> |
| 279 | + <TargetFrameworkOutputDirectory>sl4</TargetFrameworkOutputDirectory> |
211 | 280 | <SilverlightVersion>v4.0</SilverlightVersion> |
212 | 281 | </PropertyGroup> |
213 | 282 |
|
|
253 | 322 | <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier> |
254 | 323 | <TargetFrameworkVersion>v5.0</TargetFrameworkVersion> |
255 | 324 | <SilverlightVersion>v5.0</SilverlightVersion> |
256 | | - <TargetFrameworkVersionShort>$(TargetFramework)</TargetFrameworkVersionShort> |
| 325 | + <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory> |
257 | 326 | <FrameworkRegistryBase>Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier)</FrameworkRegistryBase> |
258 | 327 | <AssemblySearchPaths>$(MSBuildExtensionsPath32)\..\Reference Assemblies\Microsoft\Framework\Silverlight\v5.0</AssemblySearchPaths> |
259 | 328 | </PropertyGroup> |
260 | 329 |
|
261 | | - <PropertyGroupCondition="'$(TargetFramework)'=='sl3-wp'"> |
| 330 | + <PropertyGroupCondition="'$(TargetFramework)'=='wp7'"> |
262 | 331 | <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
263 | 332 | <TargetFrameworkProfile>WindowsPhone</TargetFrameworkProfile> |
264 | 333 | <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier> |
|
300 | 369 | <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
301 | 370 | <Tailcalls>false</Tailcalls> |
302 | 371 | <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion> |
303 | | - <TargetFrameworkVersionShort>$(TargetFramework)</TargetFrameworkVersionShort> |
| 372 | + <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory> |
304 | 373 | <!-- It would be better to use MSBuild resolution here, but the TargetFrameworkIdentifier etc. aren't set up quite correctly as yet--> |
305 | 374 | <OtherFlags>$(OtherFlags) --simpleresolution -r:"C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone\mscorlib.dll" </OtherFlags> |
306 | 375 | </PropertyGroup> |
|
351 | 420 | <DefineConstants>$(DefineConstants);FX_NO_TUPLE</DefineConstants> |
352 | 421 | <DefineConstants>$(DefineConstants);FX_NO_DELEGATE_CREATE_DELEGATE_FROM_STATIC_METHOD</DefineConstants> |
353 | 422 | <DefineConstants>$(DefineConstants)</DefineConstants> |
354 | | - <TargetFrameworkVersionShort>$(TargetFramework)</TargetFrameworkVersionShort> |
| 423 | + <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory> |
355 | 424 | <!-- It would be better to use MSBuild resolution here, but the TargetFrameworkIdentifier etc. aren't set up quite correctly as yet--> |
356 | 425 | <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> |
357 | 426 | </PropertyGroup> |
|
396 | 465 | <!-- Target CompactFramework 3.5--> |
397 | 466 | <PropertyGroupCondition="'$(TargetFramework)'=='net35-cf'"> |
398 | 467 | <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
399 | | - <TargetFrameworkVersionShort>3.5</TargetFrameworkVersionShort> |
| 468 | + <TargetFrameworkOutputDirectory>3.5</TargetFrameworkOutputDirectory> |
400 | 469 | <TargetFrameworkIdentifier>CompactFramework</TargetFrameworkIdentifier> |
401 | 470 | <DefineConstants>$(DefineConstants);FX_ATLEAST_COMPACT_FRAMEWORK_35</DefineConstants> |
402 | 471 | <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants> |
|
446 | 515 |
|
447 | 516 | <!-- Always qualify the IntermediateOutputPath by the TargetFramework if any exists--> |
448 | 517 | <PropertyGroup> |
449 | | - <IntermediateOutputPath>obj\$(ConfigurationOutputDirectory)\$(TargetFrameworkVersionShort)\</IntermediateOutputPath> |
| 518 | + <IntermediateOutputPath>obj\$(ConfigurationOutputDirectory)\$(TargetFrameworkOutputDirectory)\</IntermediateOutputPath> |
450 | 519 | </PropertyGroup> |
451 | 520 |
|
452 | 521 | <!-- Build with LKG compiler (location is determined by Microsoft.FSharp.Targets). The output compiler has suffix "-proto"--> |
453 | | - <PropertyGroupCondition=" '$(BuildWith)' == 'LKG' And '$(ProjectLanguage)' == 'FSharp'"> |
| 522 | + <PropertyGroupCondition=" '$(BuildWith)' == 'LKG'"> |
454 | 523 | <FsBuildSuffix>-proto</FsBuildSuffix> |
455 | | - <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkVersionShort)</OutputPath> |
| 524 | + <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkOutputDirectory)</OutputPath> |
456 | 525 | </PropertyGroup> |
457 | 526 |
|
458 | 527 | <!-- Build with prototype compiler (location is given by settings below). The output is the final bootstrapped compiler--> |
459 | 528 | <PropertyGroupCondition=" '$(BuildWith)' == ''"> |
460 | 529 | <FscToolPath>$(FSharpSourcesRoot)\..\lib\proto\$(protoCLIDir)</FscToolPath> |
461 | 530 | <FscToolExe>fsc-proto.exe</FscToolExe> |
462 | | - <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkVersionShort)</OutputPath> |
| 531 | + <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkOutputDirectory)</OutputPath> |
463 | 532 | </PropertyGroup> |
464 | 533 |
|
465 | 534 |
|
466 | | - |
467 | | -<!-- Include the proto targets file when building the final compiler suing the proto--> |
| 535 | +<!-- Include the proto targets file when building the final compiler using the proto--> |
468 | 536 | <ImportProject="..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets" |
469 | | -Condition="Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == '' AND '$(ProjectLanguage)' == 'FSharp'"/> |
| 537 | +Condition="Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == ''"/> |
| 538 | + |
| 539 | +<!-- Include the portable targets file when building the portable FSharp.Core--> |
| 540 | + <ImportProject="$(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets" |
| 541 | +Condition="'$(TargetFramework)'=='portable-net4+sl4+wp71+win8'"/> |
| 542 | + |
470 | 543 | <!-- Include the bootstrap targets file when building the proto compiler using the bootstrap--> |
471 | 544 | <!-- Also include it if Proto targets file doesn't exist, e.g. when cleaning the build with /t:Clean--> |
472 | 545 | <ImportProject="$(LkgPath)\Microsoft.FSharp.Targets" |
473 | | -Condition="(!Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') OR '$(BuildWith)' == 'LKG')AND '$(ProjectLanguage)' == 'FSharp'" /> |
| 546 | +Condition="(!Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') OR '$(BuildWith)' == 'LKG')" /> |
474 | 547 | <ImportProject="Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets" |
475 | 548 | Condition="'$(TargetFramework)'=='sl3' or '$(TargetFramework)'=='sl4' or '$(TargetFramework)'=='sl5' or '$(TargetFramework)'=='sl5-compiler'"/> |
476 | 549 |
|
|
497 | 570 | Text="Configuration '$(Configuration)' is not one of the supported configurations: Debug, Release, Proto" |
498 | 571 | Condition="'$(Configuration)'!='Release' and '$(Configuration)'!='Debug' and '$(Configuration)'!='Proto'"/> |
499 | 572 | <Error |
500 | | -Text="TargetFramework '$(TargetFramework)' is not one of the supported configurations: 'empty', net20, net40, mono21,sl3-wp, sl5, sl5-compiler" |
| 573 | +Text="TargetFramework '$(TargetFramework)' is not one of the supported configurations: 'empty', net20, net40, mono21,wp7, sl5, sl5-compiler, portable-net4+sl4+wp71+win8" |
501 | 574 | Condition="! ('$(TargetFramework)' == 'net40' or |
502 | 575 | '$(TargetFramework)' == 'net20' or |
503 | 576 | '$(TargetFramework)' == 'mono21' or |
504 | 577 | '$(TargetFramework)' == 'sl5' or |
505 | 578 | '$(TargetFramework)' == 'sl5-compiler' or |
506 | | - '$(TargetFramework)' == 'sl3-wp')"/> |
| 579 | + '$(TargetFramework)' == 'wp7' or |
| 580 | + '$(TargetFramework)' == 'portable-net4+sl4+wp71+win8')"/> |
507 | 581 | </Target> |
508 | 582 |
|
509 | 583 | <ImportProject="$(LkgPath)\..\2.0\FSharp.SRGen.targets" /> |
|