-
Notifications
You must be signed in to change notification settings - Fork 789
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mono build is broken on OSX due to incorrect FrameworkPathOverride paths #6180
Comments
Note that this should be able to be set on a per-OS basis by using MSBuild builtins for platform detection: dotnet/msbuild#2468 (comment) I've tried this locally myself and haven't been successful yet. In addition, we may not want to set this value explicitly if it's possible to detect that the user has set an override already. Finally, this matrix of reference directories should be expanded to the other -api folders: I'd be glad to contribute all of this, just want to raise a flag. |
A potential solve for dotnet#6180 that uses msbuild built-ins to determine the target OS and pivots off of that to set the FrameworkPathOverride. I included a `MonoRoot` property to allow for easy integration into the build process that fsharp/fsharp uses, which allows for a 'floating' mono root.
A potential solve for dotnet#6180 that uses msbuild built-ins to determine the target OS and pivots off of that to set the FrameworkPathOverride. I included a `MonoRoot` property to allow for easy integration into the build process that fsharp/fsharp uses, which allows for a 'floating' mono root.
* Update mono props: support OSX and more .NET Framework versions A potential solve for #6180 that uses msbuild built-ins to determine the target OS and pivots off of that to set the FrameworkPathOverride. I included a `MonoRoot` property to allow for easy integration into the build process that fsharp/fsharp uses, which allows for a 'floating' mono root. * add osx build jobs matching the linux jobs, and add a matrix entry to build the compiler for .net framework using mono * don't try to build anything for .net framework on non-windows this required additional build work that may conflict with upcoming work, so we'll just settle for building the existing components on macos at all in CI
Fixed in #6181 |
When building via
msbuild
ordotnet build
ordotnet msbuild
on an OSX system, any net4XX-targeting build fails because the FSharpBuild.Directory.Build.props hard-code mono paths that are standard on Linux, not on OSX. the meaningful lines are 45-50:Repro steps
Provide the steps required to reproduce the problem
dotnet build -f net462 src/fsharp/FSharp.Build/FSharp.Build.fsproj
from the root directoryExpected behavior
The
FSharp.Build
dll is build for the net462 TFM.Actual behavior
The
FSharp.Build
dll fails to build because it first builds FSharp.Core, and attempts to locate explicit references via the hard-coded/usr/lib/mono/4.5-api
path. An example of the failing resolution is:Known workarounds
None, because this property replacement overrides any
FrameworkPathOverride
that the user may set, eg via environmetn variable.Related information
Provide any related information
fsharp/fsharp
packaging repository.The text was updated successfully, but these errors were encountered: