Skip to content

Commit b51455a

Browse files
ode to msbuild and DRY, also attempt to add invariants about fsc.props setting.
Keeping the VS2017 paths here as this is probably good template other F# project may rely upon.
1 parent b6f1956 commit b51455a

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

fsc.props

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,50 @@
66
<IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsOSX>
77
<IsLinux Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinux>
88
</PropertyGroup>
9-
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft SDKs\F#\4.1\Framework\v4.0\fsc.exe')">
10-
<FscToolPath>C:\Program Files (x86)\Microsoft SDKs\F#\4.1\Framework\v4.0</FscToolPath>
9+
<PropertyGroup Condition="'$(IsWindows)' == 'true'">
1110
<FscToolExe>fsc.exe</FscToolExe>
1211
</PropertyGroup>
12+
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
13+
<FscToolPath>C:\Program Files\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
14+
</PropertyGroup>
15+
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
16+
<FscToolPath>C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
17+
</PropertyGroup>
18+
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
19+
<FscToolPath>C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
20+
</PropertyGroup>
21+
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
22+
<FscToolPath>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
23+
</PropertyGroup>
1324
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
1425
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
15-
<FscToolExe>fsc.exe</FscToolExe>
1626
</PropertyGroup>
1727
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
1828
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
19-
<FscToolExe>fsc.exe</FscToolExe>
2029
</PropertyGroup>
2130
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
2231
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
23-
<FscToolExe>fsc.exe</FscToolExe>
2432
</PropertyGroup>
2533
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
2634
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
27-
<FscToolExe>fsc.exe</FscToolExe>
2835
</PropertyGroup>
2936
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
3037
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
31-
<FscToolExe>fsc.exe</FscToolExe>
3238
</PropertyGroup>
3339
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
3440
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
35-
<FscToolExe>fsc.exe</FscToolExe>
3641
</PropertyGroup>
3742
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
3843
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
39-
<FscToolExe>fsc.exe</FscToolExe>
4044
</PropertyGroup>
4145
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\fsc.exe')">
4246
<FscToolPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp</FscToolPath>
43-
<FscToolExe>fsc.exe</FscToolExe>
4447
</PropertyGroup>
4548
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft SDKs\F#\10.1\Framework\v4.0\fsc.exe')">
4649
<FscToolPath>C:\Program Files (x86)\Microsoft SDKs\F#\10.1\Framework\v4.0</FscToolPath>
47-
<FscToolExe>fsc.exe</FscToolExe>
50+
</PropertyGroup>
51+
<PropertyGroup Condition="'$(IsWindows)' == 'true' AND Exists('C:\Program Files (x86)\Microsoft SDKs\F#\4.1\Framework\v4.0\fsc.exe')">
52+
<FscToolPath>C:\Program Files (x86)\Microsoft SDKs\F#\4.1\Framework\v4.0</FscToolPath>
4853
</PropertyGroup>
4954
<PropertyGroup Condition="'$(IsOSX)' == 'true' AND Exists('/Library/Frameworks/Mono.framework/Versions/Current/Commands/fsharpc')">
5055
<FscToolPath>/Library/Frameworks/Mono.framework/Versions/Current/Commands</FscToolPath>
@@ -54,4 +59,10 @@
5459
<FscToolPath>/usr/bin</FscToolPath>
5560
<FscToolExe>fsharpc</FscToolExe>
5661
</PropertyGroup>
62+
<PropertyGroup Condition="'$(FscToolPath)' == ''">
63+
<Error Text="FscToolPath MSBuild property could'nt be set" />
64+
<PropertyGroup>
65+
<PropertyGroup Condition="'$(FscToolExe)' == ''">
66+
<Error Text="FscToolExe MSBuild property could'nt be set" />
67+
<PropertyGroup>
5768
</Project>

0 commit comments

Comments
 (0)