|
10 | 10 | <TargetFrameworkCondition="'$(TargetFramework)'==''">net40</TargetFramework> |
11 | 11 | <!-- For .NET 2.0 use a 2.0 proto compiler, otherwise use a 4.0 proto compiler--> |
12 | 12 | <protoCLIDirCondition="'$(protoCLIDir)' == ''">net40</protoCLIDir> |
13 | | - <LkgVersion>4.0.30319.1</LkgVersion> |
| 13 | + <LkgPath>..\lib\bootstrap\4.0</LkgPath> |
14 | 14 | <FsLexUnicode>true</FsLexUnicode> |
15 | 15 | <ProjectLanguage>FSharp</ProjectLanguage> |
16 | 16 | <OtherFlags>$(OtherFlags) --times</OtherFlags> |
17 | 17 | <NoWarn>$(NoWarn);69;65;54;61;75</NoWarn> |
18 | 18 | <DebugSymbols>true</DebugSymbols> |
19 | 19 | </PropertyGroup> |
20 | 20 |
|
21 | | -<!-- For .NET 2.0 and 4.0, we use the version in 'source-build-version', initially 2.9.999--> |
22 | | -<!-- For Mono 2.0 and 4.0, we use the same versions as VS2012 (see strong naming below)--> |
23 | | -<!----> |
24 | | -<!-- However FSharp.Core must always use the same version and name as VS, with delay signing, see below--> |
25 | | - <PropertyGroupCondition="'$(AssemblyName)' != 'FSharp.Core'"> |
26 | | - <VersionFile>$(FSharpSourcesRoot)\source-build-version</VersionFile> |
27 | | - <VersionFileCondition="'$(TargetFramework)' == 'mono20'">$(FSharpSourcesRoot)\source-build-version-2.3.0.0</VersionFile> |
28 | | - <VersionFileCondition="'$(TargetFramework)' == 'mono40'">$(FSharpSourcesRoot)\source-build-version-4.3.0.0</VersionFile> |
29 | | - </PropertyGroup> |
30 | | - |
31 | | - <PropertyGroupCondition="'$(AssemblyName)' == 'FSharp.Core'"> |
| 21 | +<!-- We use the same versions as VS2012 (see strong naming below)--> |
| 22 | + <PropertyGroup> |
32 | 23 | <VersionFile>$(FSharpSourcesRoot)\source-build-version</VersionFile> |
33 | | - <VersionFileCondition="'$(TargetFramework)' == 'net20' OR '$(TargetFramework)' == 'mono20'">$(FSharpSourcesRoot)\source-build-version-2.3.0.0</VersionFile> |
34 | | - <VersionFileCondition="'$(TargetFramework)' == 'net40' OR '$(TargetFramework)' == 'mono40'">$(FSharpSourcesRoot)\source-build-version-4.3.0.0</VersionFile> |
| 24 | + <VersionFileCondition="'$(TargetFramework)' == 'net20'">$(FSharpSourcesRoot)\source-build-version-2.3.0.0</VersionFile> |
| 25 | + <VersionFileCondition="'$(TargetFramework)' == 'net40'">$(FSharpSourcesRoot)\source-build-version-4.3.0.0</VersionFile> |
35 | 26 | </PropertyGroup> |
36 | 27 |
|
37 | | -<!-- For .NET 2.0 and 4.0, we use test-signed binaries, apart from FSharp.Core. We do this because there's no point creating Microsoft-named binaries.--> |
38 | | -<!----> |
39 | | -<!-- For Mono 2.0 and 4.0, we sign with the Microsoft key and use delay-signing.--> |
| 28 | +<!-- We sign with the Microsoft key and use delay-signing.--> |
40 | 29 | <!-- These can then be signed with the special mono.snk (we don't do this as part of this build,--> |
41 | 30 | <!-- but it can be done manually later, e.g. on the target machine). This is how the Mono team build the binaries--> |
42 | 31 | <!-- at github.com/fsharp/fsharp and how they are shipped with Mono--> |
43 | 32 | <!----> |
44 | 33 | <!-- However FSharp.Core must use the Microsoft key name, otherwise the compiler can't load type provider components.--> |
45 | | - <PropertyGroupCondition="('$(Configuration)'=='Debug' OR '$(Configuration)'=='Release') AND ('$(TargetFramework)' == 'net20' OR '$(TargetFramework)' == 'net40')"> |
46 | | - <DefineConstants>STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)</DefineConstants> |
47 | | - <OtherFlagsCondition="'$(AssemblyName)' == 'FSharp.Core'">$(OtherFlags) --delaysign+ --keyfile:$(FSharpSourcesRoot)\fsharp\msft.pubkey</OtherFlags> |
48 | | - <OtherFlagsCondition="'$(AssemblyName)' != 'FSharp.Core'">$(OtherFlags) --keyfile:$(FSharpSourcesRoot)\fsharp\test.snk</OtherFlags> |
49 | | - <StrongNames>true</StrongNames> |
50 | | - </PropertyGroup> |
51 | 34 |
|
52 | | - <PropertyGroupCondition="('$(Configuration)'=='Debug' OR '$(Configuration)'=='Release') AND ('$(TargetFramework)' == 'mono20' OR '$(TargetFramework)' == 'mono40')"> |
| 35 | + <PropertyGroupCondition="'$(Configuration)'=='Debug' OR '$(Configuration)'=='Release'"> |
53 | 36 | <DefineConstants>STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)</DefineConstants> |
54 | 37 | <OtherFlags>$(OtherFlags) --delaysign+ --keyfile:$(FSharpSourcesRoot)\fsharp\msft.pubkey</OtherFlags> |
55 | 38 | <StrongNames>true</StrongNames> |
|
80 | 63 | <DefineConstants>DEBUG;NO_STRONG_NAMES;$(DefineConstants)</DefineConstants> |
81 | 64 | </PropertyGroup> |
82 | 65 |
|
| 66 | + <PropertyGroup> |
| 67 | + <DefineConstants>MONO;$(DefineConstants)</DefineConstants> |
| 68 | + </PropertyGroup> |
| 69 | + |
83 | 70 | <!-- Always qualify the IntermediateOutputPath by the TargetFramework if any exists--> |
84 | 71 | <PropertyGroup> |
85 | 72 | <IntermediateOutputPath>obj\$(Configuration)\$(TargetFramework)\</IntermediateOutputPath> |
|
102 | 89 | <OtherFlags>$(OtherFlags) --simpleresolution</OtherFlags> |
103 | 90 | </PropertyGroup> |
104 | 91 |
|
105 | | - <PropertyGroupCondition="'$(TargetFramework)'=='net40' or '$(TargetFramework)'=='mono40'"> |
| 92 | + <PropertyGroupCondition="'$(TargetFramework)'=='net40'"> |
106 | 93 | <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
107 | 94 | <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants> |
108 | 95 | <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants> |
109 | 96 | <DefineConstants>$(DefineConstants);BE_SECURITY_TRANSPARENT</DefineConstants> |
110 | 97 | <DefineConstants>$(DefineConstants);QUERIES_IN_FSLIB</DefineConstants> |
111 | 98 | <DefineConstants>$(DefineConstants);PUT_TYPE_PROVIDERS_IN_FSCORE;</DefineConstants> |
112 | 99 | <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants> |
| 100 | + <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants> |
113 | 101 | <TargetFrameworkProfile></TargetFrameworkProfile> |
114 | 102 | <!-- MSbuild works out the assembly references--> |
115 | 103 | </PropertyGroup> |
|
445 | 433 |
|
446 | 434 |
|
447 | 435 |
|
448 | | - <ImportProject="..\Proto\$(protoCLIDir)\bin\Microsoft.FSharp-proto.Targets" |
449 | | -Condition="'$(BuildWith)' == '' |
450 | | - AND '$(ProjectLanguage)' == 'FSharp'"/> |
451 | | - <ImportProject="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" |
452 | | -Condition="'$(BuildWith)' == 'LKG' AND |
453 | | - '$(ProjectLanguage)' == 'FSharp' AND |
454 | | - !Exists('$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll')" /> |
455 | | - <ImportProject="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" |
456 | | -Condition="'$(BuildWith)' == 'LKG' |
457 | | - AND '$(ProjectLanguage)' == 'FSharp' |
458 | | - AND Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll') |
459 | | - AND Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')" /> |
460 | | - <ImportProject="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" |
461 | | -Condition="'$(BuildWith)' == 'LKG' |
462 | | - AND '$(ProjectLanguage)' == 'FSharp' |
463 | | - AND Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll') |
464 | | - AND (!Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')) |
465 | | - AND (Exists('$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets'))" /> |
| 436 | + <ImportProject="..\Proto\$(protoCLIDir)\bin\Microsoft.FSharp-proto.targets" |
| 437 | +Condition="'$(BuildWith)' == '' AND '$(ProjectLanguage)' == 'FSharp'"/> |
| 438 | + <ImportProject="$(LkgPath)\Microsoft.FSharp.targets" |
| 439 | +Condition="'$(BuildWith)' == 'LKG' AND '$(ProjectLanguage)' == 'FSharp'" /> |
466 | 440 | <ImportProject="Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets" |
467 | 441 | Condition="'$(TargetFramework)'=='sl3' or '$(TargetFramework)'=='sl4' or '$(TargetFramework)'=='sl5' or '$(TargetFramework)'=='sl5-compiler'"/> |
468 | 442 |
|
469 | 443 | <!-- Reference an existing FSI.EXE for use from within MSBuild--> |
470 | 444 | <PropertyGroup> |
471 | | - <FsSrGenToolPath>$(FSharpSourcesRoot)\..\lkg\FSharp-$(LkgVersion)\bin</FsSrGenToolPath> |
472 | | - <FsLexToolPath>$(FSharpSourcesRoot)\..\lkg\FSharp-$(LkgVersion)\bin</FsLexToolPath> |
473 | | - <FsYaccToolPath>$(FSharpSourcesRoot)\..\lkg\FSharp-$(LkgVersion)\bin</FsYaccToolPath> |
| 445 | + <FsSrGenToolPath>$(FSharpSourcesRoot)\$(LkgPath)\..\2.0</FsSrGenToolPath> |
| 446 | + <FsLexToolPath>$(FSharpSourcesRoot)\$(LkgPath)\..\2.0</FsLexToolPath> |
| 447 | + <FsYaccToolPath>$(FSharpSourcesRoot)\$(LkgPath)\..\2.0</FsYaccToolPath> |
474 | 448 | <FsLexToolExe>fslex.exe</FsLexToolExe> |
475 | 449 | <FsYaccToolExe>fsyacc.exe</FsYaccToolExe> |
476 | 450 | </PropertyGroup> |
477 | 451 |
|
478 | 452 |
|
479 | 453 | <PropertyGroup> |
480 | 454 | <!-- Hook compilation phase to do custom work--> |
481 | | - <CompileDependsOn>ValidateConfiguration;$(CompileDependsOn);CustomCopyLocalFiles</CompileDependsOn> |
| 455 | + <CompileDependsOn>ValidateConfiguration;$(CompileDependsOn)</CompileDependsOn> |
482 | 456 | <RootNamespace></RootNamespace> |
483 | 457 | <DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile> |
484 | 458 | <EnsureThereAreNoUnusedFsSrGenResources>false</EnsureThereAreNoUnusedFsSrGenResources> |
|
489 | 463 | Text="Configuration '$(Configuration)' is not one of the supported configurations: Debug, Release, Proto" |
490 | 464 | Condition="'$(Configuration)'!='Release' and '$(Configuration)'!='Debug' and '$(Configuration)'!='Proto'"/> |
491 | 465 | <Error |
492 | | -Text="TargetFramework '$(TargetFramework)' is not one of the supported configurations: 'empty', net20, net40,mono20, mono40,sl3-wp, sl5, sl5-compiler" |
| 466 | +Text="TargetFramework '$(TargetFramework)' is not one of the supported configurations: 'empty', net20, net40, sl3-wp, sl5, sl5-compiler" |
493 | 467 | Condition="! ('$(TargetFramework)' == 'net40' or |
494 | 468 | '$(TargetFramework)' == 'net20' or |
495 | | - '$(TargetFramework)' == 'mono40' or |
496 | | - '$(TargetFramework)' == 'mono20' or |
497 | 469 | '$(TargetFramework)' == 'sl5' or |
498 | 470 | '$(TargetFramework)' == 'sl5-compiler' or |
499 | 471 | '$(TargetFramework)' == 'sl3-wp')"/> |
500 | 472 | </Target> |
501 | 473 |
|
502 | | -<!-- This build step copies files to the output folder while replacing build variables in the text of |
503 | | - those file.--> |
504 | | - <Target |
505 | | -Name="CustomCopyLocalFiles" |
506 | | -Inputs="@(CustomCopyLocal)" |
507 | | -Outputs="@(CustomCopyLocal->'$(OutDir)%(TargetFilename)')" |
508 | | -Condition="'$(targetCLIDir)'!='Silverlight/4.0/'" |
509 | | - > |
510 | | - <ExecCommand="$(FSharpSourcesRoot)\fsharp\FSharp.Build\subst.exe {LkgVersion} $(LkgVersion) {BuildSuffix}"$(FsBuildSuffix)" {FSharpTargetsDir} unused"%(CustomCopyLocal.FullPath)"> $(OutDir)%(CustomCopyLocal.TargetFilename)"/> |
511 | | -<!-- Make sure it will get cleaned--> |
512 | | - <CreateItemInclude="$(OutDir)%(CustomCopyLocal.TargetFilename)"> |
513 | | - <OutputTaskParameter="Include"ItemName="FileWrites"/> |
514 | | - </CreateItem> |
515 | | - </Target> |
516 | | - |
517 | | - <ImportProject="..\lkg\FSharp-$(LkgVersion)\bin\FSharp.SRGen.targets" /> |
| 474 | + <ImportProject="$(LkgPath)\..\2.0\FSharp.SRGen.targets" /> |
518 | 475 | </Project> |