Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit b2cd750

Browse files
authored
Verify Build From Source (#3246)
* Build From Source * Fix a few issues intriduced to the legacy build * update lexx/yacc to 7.0.6 * Build from source * feedback * Complete build from source * dotnet.exe extension * script * Version files * Add build from source to build * build nuget package * Build nuget package * tweak build.cmd * Update dotnetcli tools - set path correctly * Only build from source when we have a dotnet cli * Add bash script * merge * Update lkg path * Fix fsharp.compiler.testing nuget package
1 parent 6701de5 commit b2cd750

File tree

74 files changed

+9791
-960
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+9791
-960
lines changed

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@
77
# (These aren't generally useful to commit directly; if anything, they should be applied.)
88
scripts/*.patch
99

10+
/fcs/fsharp/FSharp.Compiler.Private/illex.fs
11+
/fcs/fsharp/FSharp.Compiler.Private/ilpars.fs
12+
/fcs/fsharp/FSharp.Compiler.Private/ilpars.fsi
13+
/fcs/fsharp/FSharp.Compiler.Private/lex.fs
14+
/fcs/fsharp/FSharp.Compiler.Private/pars.fs
15+
/fcs/fsharp/FSharp.Compiler.Private/pars.fsi
16+
/fcs/fsharp/FSharp.Compiler.Private/pplex.fs
17+
/fcs/fsharp/FSharp.Compiler.Private/pppars.fs
18+
/fcs/fsharp/FSharp.Compiler.Private/pppars.fsi
1019
/src/*.userprefs
1120
/src/fsharp/FSStrings.resources
1221
/src/fsharp/FSharp.Build/*.resx

DotnetCLIToolsVersion.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0-preview2-006494
1+
2.0.0-preview2-006502

before_install.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ fi)
5959

6060
#TODO: work out how to avoid the need for this
6161
chmod u+x packages/FSharp.Compiler.Tools.4.1.5/tools/fsi.exe
62-
chmod u+x packages/FsLexYacc.7.0.4/build/fslex.exe
63-
chmod u+x packages/FsLexYacc.7.0.4/build/fsyacc.exe
62+
chmod u+x packages/FsLexYacc.7.0.6/build/fslex.exe
63+
chmod u+x packages/FsLexYacc.7.0.6/build/fsyacc.exe
6464

6565
# The FSharp.Compiler.Tools package doesn't work correctly unless a proper install of F# has been done on the machine.
6666
# OSX can skip this because the OSX Mono installer includes F#.

build.cmd

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ echo.Other examples:
3434
echo.
3535
echo. build.cmd net40 (build compiler for .NET Framework)
3636
echo. build.cmd coreclr (build compiler for .NET Core)
37+
echo. build.cmd buildfromsource (build compiler for .NET Core -- Verify that buildfromsource works)
3738
echo. build.cmd vs (build Visual Studio IDE Tools)
3839
echo. build.cmd all (build everything)
3940
echo. build.cmd test (build and test default targets)
@@ -59,6 +60,7 @@ set BUILD_PHASE=1
5960
set BUILD_NET40=0
6061
set BUILD_NET40_FSHARP_CORE=0
6162
set BUILD_CORECLR=0
63+
set BUILD_BUILDFROMSOURCE=0
6264
set BUILD_VS=0
6365
set BUILD_FCS=0
6466
set BUILD_CONFIG=release
@@ -145,6 +147,13 @@ if /i "%ARG%" == "coreclr" (
145147
set _autoselect=0
146148
set BUILD_PROTO_WITH_CORECLR_LKG=1
147149
set BUILD_CORECLR=1
150+
set BUILD_FROMSOURCE=1
151+
)
152+
153+
if /i "%ARG%" == "buildfromsource" (
154+
set _autoselect=0
155+
set BUILD_PROTO_WITH_CORECLR_LKG=1
156+
set BUILD_FROMSOURCE=1
148157
)
149158

150159
if /i "%ARG%" == "vs" (
@@ -387,6 +396,7 @@ echo BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG%
387396
echo BUILD_NET40=%BUILD_NET40%
388397
echo BUILD_NET40_FSHARP_CORE=%BUILD_NET40_FSHARP_CORE%
389398
echo BUILD_CORECLR=%BUILD_CORECLR%
399+
echo BUILD_BUILDFROMSOURCE=%BUILD_BUILDFROMSOURCE%
390400
echo BUILD_VS=%BUILD_VS%
391401
echo BUILD_FCS=%BUILD_FCS%
392402
echo BUILD_SETUP=%BUILD_SETUP%
@@ -542,6 +552,7 @@ if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
542552
set _dotnetcliexe=%~dp0Tools\dotnetcli\dotnet.exe
543553
set _dotnet20exe=%~dp0Tools\dotnet20\dotnet.exe
544554
set NUGET_PACKAGES=%~dp0Packages
555+
set path=%~dp0Tools\dotnet20\;%path%
545556

546557
set _fsiexe="packages\FSharp.Compiler.Tools.4.1.5\tools\fsi.exe"
547558
if not exist %_fsiexe% echo Error: Could not find %_fsiexe% && goto :failure
@@ -550,6 +561,14 @@ if not exist %_fsiexe% echo Error: Could not find %_fsiexe% && goto :failure
550561
if not exist %_nugetexe% echo Error: Could not find %_nugetexe% && goto :failure
551562
%_ngenexe% install %_nugetexe% /nologo
552563

564+
echo ---------------- Done with package restore, verify buildfrom source ---------------
565+
if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
566+
pushd src
567+
call buildfromsource.cmd
568+
@if ERRORLEVEL 1 echo Error: buildfromsource.cmd failed && goto :failure
569+
popd
570+
)
571+
553572
echo ---------------- Done with package restore, starting proto ------------------------
554573

555574
rem Decide if Proto need building

mono/prepare-mono.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ echo "chmod u+x packages/FSharp.Compiler.Tools.4.1.5/tools/fsi.exe"
5858
echo "chmod u+x packages/FsLexYacc.7.0.4/build/fslex.exe"
5959
echo "chmod u+x packages/FsLexYacc.7.0.4/build/fsyacc.exe"
6060
chmod u+x packages/FSharp.Compiler.Tools.4.1.5/tools/fsi.exe
61-
chmod u+x packages/FsLexYacc.7.0.4/build/fslex.exe
62-
chmod u+x packages/FsLexYacc.7.0.4/build/fsyacc.exe
61+
chmod u+x packages/FsLexYacc.7.0.6/build/fslex.exe
62+
chmod u+x packages/FsLexYacc.7.0.6/build/fsyacc.exe
6363

6464
# The FSharp.Compiler.Tools package doesn't work correctly unless a proper install of F# has been done on the machine.
6565
# OSX can skip this because the OSX Mono installer includes F#.

packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<!-- Packages for the Visual F# IDE Tools should go in vsintegration\packages.config -->
66

77
<!-- CodeGen-->
8-
<package id="FsLexYacc" version="7.0.4" targetFramework="net46" />
8+
<package id="FsLexYacc" version="7.0.6" targetFramework="net46" />
99

1010
<!-- Build infrastructure-->
1111
<package id="MicroBuild.Core" version="0.2.0" />
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
3+
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4+
5+
<PropertyGroup>
6+
<FSCoreVersion>4.4.1.0</FSCoreVersion>
7+
<OutputPath>$(MSBuildThisFileDirectory)../BuildFromSource/$(Configuration)/bin</OutputPath>
8+
9+
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
10+
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
11+
<EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
12+
13+
<!-- Signing flags currently done using OtherFlags. Can migrate to properties once build target updated -->
14+
<DefineConstants>$(DefineConstants);STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY</DefineConstants>
15+
<KeyFile>$(MSBuildThisFileDirectory)buildtools/keys/MSFT.snk</KeyFile>
16+
<PublicSign>true</PublicSign>
17+
<OtherFlags>$(OtherFlags) --publicsign --keyfile:$(KeyFile)</OtherFlags>
18+
<OtherFlags>$(OtherFlags) --nocopyfsharpcore</OtherFlags>
19+
20+
<DotNetExe Condition=" '$(OS)' == 'Unix' ">dotnet</DotNetExe>
21+
<DotNetExe Condition=" '$(OS)' != 'Unix' ">dotnet.exe</DotNetExe>
22+
<DotNetExePath>$(MSBuildThisFileDirectory)../Tools/dotnet20/$(DotNetExe)</DotNetExePath>
23+
<DotNetExePath Condition="!Exists($(DotNetExe))">$(MSBuildBinPath)/../../$(DotNetExe)</DotNetExePath>
24+
25+
<PreReleaseLabel></PreReleaseLabel>
26+
<BuildVersionFilePath Condition="'$(BuildVersionFilePath)'==''" >$(IntermediateOutputFile)\BuildVersionFile.props</BuildVersionFilePath>
27+
28+
</PropertyGroup>
29+
30+
<PropertyGroup>
31+
<TargetDotnetProfile Condition=" $(TargetFramework.StartsWith('netstandard')) or $(TargetFramework.StartsWith('netcoreapp1.0')) ">coreclr</TargetDotnetProfile>
32+
<TargetDotnetProfile Condition=" $(TargetFramework.StartsWith('netframework')) ">net40</TargetDotnetProfile>
33+
</PropertyGroup>
34+
35+
<Import Project="FSharpSource.Profiles.targets" />
36+
<Import Project="$(BuildVersionFilePath)" Condition="Exists('$(BuildVersionFilePath)')" />
37+
38+
<Target Name="CopyAndSubstituteTextFiles"
39+
BeforeTargets="Compile"
40+
Inputs="@(CopyAndSubstituteText)"
41+
Outputs="@(CopyAndSubstituteText->'$(OutDir)%(TargetFilename)')" >
42+
43+
<PropertyGroup>
44+
<FileText>
45+
$([System.Text.RegularExpressions.Regex]::Replace($([System.IO.File]::ReadAllText("%(CopyAndSubstituteText.FullPath)")), "%(CopyAndSubstituteText.Pattern1)", "%(CopyAndSubstituteText.Replacement1)"))
46+
</FileText>
47+
48+
<FileText Condition = "'%(CopyAndSubstituteText.Pattern2)' != ''">
49+
$([System.Text.RegularExpressions.Regex]::Replace($(FileText), "%(CopyAndSubstituteText.Pattern2)", "%(CopyAndSubstituteText.Replacement2)"))
50+
</FileText>
51+
</PropertyGroup>
52+
<WriteLinesToFile File="$(OutDir)%(CopyAndSubstituteText.TargetFilename)" Lines="$(FileText)" Overwrite="true" />
53+
</Target>
54+
55+
<!--
56+
=========================================================================
57+
Build FsSrGen files.
58+
=========================================================================
59+
-->
60+
<Target Name="CallFsSrGen"
61+
Inputs="@(FsSrGen)"
62+
Outputs="@(FsSrGen->'$(IntermediateOutputPath)%(Filename).fs');@(FsSrGen->'$(IntermediateOutputPath)%(Filename).resx')"
63+
Condition="'@(FsSrGen)' != ''">
64+
65+
<PropertyGroup>
66+
<FsSrGenPath>$(MSBuildThisFileDirectory)../Tools/fssrgen/fssrgen.dll</FsSrGenPath>
67+
</PropertyGroup>
68+
69+
<!-- Create the output directory in case it doesn't exist yet -->
70+
<MakeDir Directories="$(IntermediateOutputPath)" />
71+
72+
<!-- Run the tool -->
73+
<Exec Command="&quot;$(DotNetExePath)&quot; &quot;$(FsSrGenPath)&quot; &quot;%(FsSrGen.FullPath)&quot; &quot;$(IntermediateOutputPath)%(FsSrGen.Filename).fs&quot; &quot;$(IntermediateOutputPath)%(FsSrGen.Filename).resx&quot; $(FsSrGenProjectName)" />
74+
</Target>
75+
76+
<Target Name="ProcessFsSrGen"
77+
DependsOnTargets="CallFsSrGen"
78+
Condition="'@(FsSrGen)'!=''"
79+
BeforeTargets="CoreResGen">
80+
81+
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).fs">
82+
<Output TaskParameter="Include" ItemName="CompileBefore"/>
83+
</CreateItem>
84+
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).resx" AdditionalMetadata="ManifestResourceName=%(FsSrGen.Filename)">
85+
<Output TaskParameter="Include" ItemName="EmbeddedResource"/>
86+
</CreateItem>
87+
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).fs">
88+
<Output TaskParameter="Include" ItemName="FileWrites"/>
89+
</CreateItem>
90+
<CreateItem Include="$(IntermediateOutputPath)%(FsSrGen.Filename).resx">
91+
<Output TaskParameter="Include" ItemName="FileWrites"/>
92+
</CreateItem>
93+
</Target>
94+
95+
<ItemGroup>
96+
<AvailableItemName Include="FsLex">
97+
<Visible>false</Visible>
98+
</AvailableItemName>
99+
<AvailableItemName Include="FsYacc">
100+
<Visible>false</Visible>
101+
</AvailableItemName>
102+
</ItemGroup>
103+
104+
<!-- Build FsLex files. -->
105+
<Target Name="CallFsLex"
106+
Inputs="@(FsLex)"
107+
Outputs="@(FsLex->'$(FsLexOutputFolder)%(Filename).fs')"
108+
Condition="'@(FsLex)'!=''"
109+
BeforeTargets="CoreCompile">
110+
111+
<PropertyGroup>
112+
<FsLexPath>$(MSBuildThisFileDirectory)../Tools/fslex/fslex.dll</FsLexPath>
113+
</PropertyGroup>
114+
115+
<!-- Create the output directory -->
116+
<MakeDir Directories="$(FsLexOutputFolder)"/>
117+
118+
<!-- Run the tool -->
119+
<Exec Command="&quot;$(DotNetExePath)&quot; &quot;$(FsLexPath)&quot; -o &quot;$(FsLexOutputFolder)%(FsLex.Filename).fs&quot; %(FsLex.OtherFlags) %(FsLex.Identity)" />
120+
121+
<!-- Make sure it will get cleaned -->
122+
<CreateItem Include="$(FsLexOutputFolder)%(FsLex.Filename).fs">
123+
<Output TaskParameter="Include" ItemName="FileWrites"/>
124+
</CreateItem>
125+
</Target>
126+
127+
<!-- Build FsYacc files. -->
128+
<Target Name="CallFsYacc"
129+
Inputs="@(FsYacc)"
130+
Outputs="@(FsYacc->'$(FsYaccOutputFolder)%(Filename).fs')"
131+
Condition="'@(FsYacc)'!=''"
132+
BeforeTargets="CoreCompile">
133+
134+
<PropertyGroup>
135+
<FsYaccPath>$(MSBuildThisFileDirectory)../Tools/fsyacc/fsyacc.dll</FsYaccPath>
136+
</PropertyGroup>
137+
138+
<!-- Create the output directory -->
139+
<MakeDir Directories="$(FsYaccOutputFolder)" />
140+
141+
<!-- Run the tool -->
142+
<Exec Command="&quot;$(DotNetExePath)&quot; &quot;$(FsYaccPath)&quot; -o &quot;$(FsYaccOutputFolder)%(FsYacc.Filename).fs&quot; %(FsYacc.OtherFlags) %(FsYacc.Identity)" />
143+
144+
<!-- Make sure it will get cleaned -->
145+
<CreateItem Include="$(FsYaccOutputFolder)%(FsYacc.Filename).fs">
146+
<Output TaskParameter="Include" ItemName="FileWrites"/>
147+
</CreateItem>
148+
</Target>
149+
150+
</Project>

src/FSharpSource.Profiles.targets

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
3+
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4+
5+
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='net40'">
6+
<DefineConstants Condition="'$(MonoPackaging)' == 'true'">$(DefineConstants);CROSS_PLATFORM_COMPILER</DefineConstants>
7+
<DefineConstants>$(DefineConstants);ENABLE_MONO_SUPPORT</DefineConstants>
8+
<DefineConstants>$(DefineConstants);BE_SECURITY_TRANSPARENT</DefineConstants>
9+
<DefineConstants>$(DefineConstants);FX_LCIDFROMCODEPAGE</DefineConstants>
10+
</PropertyGroup>
11+
12+
<PropertyGroup Condition="'$(TargetDotnetProfile)'=='coreclr'">
13+
<DefineConstants>$(DefineConstants);FX_PORTABLE_OR_NETSTANDARD</DefineConstants>
14+
<DefineConstants>$(DefineConstants);NETSTANDARD1_6</DefineConstants>
15+
<DefineConstants>$(DefineConstants);PREFERRED_UI_LANG</DefineConstants>
16+
<DefineConstants>$(DefineConstants);FX_NO_APP_DOMAINS</DefineConstants>
17+
<DefineConstants>$(DefineConstants);FX_NO_ARRAY_LONG_LENGTH</DefineConstants>
18+
<DefineConstants>$(DefineConstants);FX_NO_BEGINEND_READWRITE</DefineConstants>
19+
<DefineConstants>$(DefineConstants);FX_NO_BINARY_SERIALIZATION</DefineConstants>
20+
<DefineConstants>$(DefineConstants);FX_NO_CONVERTER</DefineConstants>
21+
<DefineConstants>$(DefineConstants);FX_NO_DEFAULT_DEPENDENCY_TYPE</DefineConstants>
22+
<DefineConstants>$(DefineConstants);FX_NO_CORHOST_SIGNER</DefineConstants>
23+
<DefineConstants>$(DefineConstants);FX_NO_CRYPTO</DefineConstants>
24+
<DefineConstants>$(DefineConstants);FX_NO_EVENTWAITHANDLE_IDISPOSABLE</DefineConstants>
25+
<DefineConstants>$(DefineConstants);FX_NO_EXIT_CONTEXT_FLAGS</DefineConstants>
26+
<DefineConstants>$(DefineConstants);FX_NO_HEAPTERMINATION</DefineConstants>
27+
<DefineConstants>$(DefineConstants);FX_NO_LINKEDRESOURCES</DefineConstants>
28+
<DefineConstants>$(DefineConstants);FX_NO_LOADER_OPTIMIZATION</DefineConstants>
29+
<DefineConstants>$(DefineConstants);FX_NO_SIMPLIFIED_LOADER</DefineConstants>
30+
<DefineConstants>$(DefineConstants);FX_NO_PARAMETERIZED_THREAD_START</DefineConstants>
31+
<DefineConstants>$(DefineConstants);FX_NO_PDB_READER</DefineConstants>
32+
<DefineConstants>$(DefineConstants);FX_NO_PDB_WRITER</DefineConstants>
33+
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_MODULE_HANDLES</DefineConstants>
34+
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_ONLY</DefineConstants>
35+
<DefineConstants>$(DefineConstants);FX_NO_RUNTIMEENVIRONMENT</DefineConstants>
36+
<DefineConstants>$(DefineConstants);FX_NO_SECURITY_PERMISSIONS</DefineConstants>
37+
<DefineConstants>$(DefineConstants);FX_NO_SERVERCODEPAGES</DefineConstants>
38+
<DefineConstants>$(DefineConstants);FX_NO_SYMBOLSTORE</DefineConstants>
39+
<DefineConstants>$(DefineConstants);FX_NO_SYSTEM_CONFIGURATION</DefineConstants>
40+
<DefineConstants>$(DefineConstants);FX_NO_THREAD</DefineConstants>
41+
<DefineConstants>$(DefineConstants);FX_NO_THREADABORT</DefineConstants>
42+
<DefineConstants>$(DefineConstants);FX_NO_WAITONE_MILLISECONDS</DefineConstants>
43+
<DefineConstants>$(DefineConstants);FX_NO_WEB_CLIENT</DefineConstants>
44+
<DefineConstants>$(DefineConstants);FX_NO_WIN_REGISTRY</DefineConstants>
45+
<DefineConstants>$(DefineConstants);FX_NO_WINFORMS</DefineConstants>
46+
<DefineConstants>$(DefineConstants);FX_REDUCED_EXCEPTIONS</DefineConstants>
47+
<DefineConstants>$(DefineConstants);FX_REDUCED_CONSOLE</DefineConstants>
48+
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFEMIT</DefineConstants>
49+
<DefineConstants>$(DefineConstants);FX_RESHAPED_CONSOLE</DefineConstants>
50+
<DefineConstants>$(DefineConstants);FX_RESHAPED_GLOBALIZATION</DefineConstants>
51+
<DefineConstants>$(DefineConstants);FX_RESHAPED_REFLECTION</DefineConstants>
52+
<DefineConstants>$(DefineConstants);FX_JITTRACKING_ISSUE</DefineConstants>
53+
<DefineConstants>$(DefineConstants);FX_NO_INDENTED_TEXT_WRITER</DefineConstants>
54+
<DefineConstants Condition=" '$(FX_NO_LOADER)' != 'true' ">$(DefineConstants);FX_RESHAPED_REFLECTION_CORECLR</DefineConstants>
55+
<DefineConstants>$(DefineConstants);FX_RESHAPED_MSBUILD</DefineConstants>
56+
<DefineConstants>$(DefineConstants);FSI_TODO_NETCORE</DefineConstants>
57+
<OtherFlags>$(OtherFlags) --simpleresolution</OtherFlags>
58+
</PropertyGroup>
59+
60+
</Project>

src/FSharpSource.Settings.targets

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@
128128

129129
<PropertyGroup>
130130
<!-- Compiler tool locations. -->
131-
<FsLexToolPath>$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.4\build</FsLexToolPath>
132-
<FsYaccToolPath>$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.4\build</FsYaccToolPath>
131+
<FsLexToolPath>$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.6\build</FsLexToolPath>
132+
<FsYaccToolPath>$(FSharpSourcesRoot)\..\packages\FsLexYacc.7.0.6\build</FsYaccToolPath>
133133
<FsiToolExe>fsi.exe</FsiToolExe>
134134
<FsLexToolExe>fslex.exe</FsLexToolExe>
135135
<FsYaccToolExe>fsyacc.exe</FsYaccToolExe>

0 commit comments

Comments
 (0)