At the moment the linux build fails with:
MSBuild auto-detection: using msbuild version '15.0' from '/usr/lib/mono/msbuild/15.0/bin'.
Error parsing solution file at /home/tom/tmp/Librelancer/src/LibreLancer.sln: Invalid Image
An error occurred when executing task 'Build'.
Error: One or more errors occurred.
NuGet: Process returned an error (exit code 1).
Looking into this error leads here: NuGet/Home#7202 which suggests downgrading to msbuild 14.0 to fix it, unfortunately I don't know enough about mono or its build system to submit a PR that does this.
edit: I managed to downgrade to msbuild 14.0 by installing the package from Arch Linux's AUR, however the build system seems to ignore PATH and auto-detects the executable from /usr/lib/mono/msbuild/15.0/bin
. I very crudely renamed the original file to force it to use msbuild 14.0 from /usr/bin/msbuild
Once I'd done that I got further but got the following errors:
Project "/home/tom/tmp/Librelancer/src/LibreLancer.sln" (1) is building "/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj" (2) on node 1 (default targets).
/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file "/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj"
Done Building Project "/home/tom/tmp/Librelancer/src/LibreLancer/LibreLancer.csproj.metaproj" (default targets) -- FAILED.
Project "/home/tom/tmp/Librelancer/src/LibreLancer.sln" (1) is building "/home/tom/tmp/Librelancer/src/LibreLancer.Base/LibreLancer.Base.csproj.metaproj" (3) on node 1 (default targets).
/home/tom/tmp/Librelancer/src/LibreLancer.Base/LibreLancer.Base.csproj.metaproj : error MSB4025: The project file could not be loaded. Could not find file "/home/tom/tmp/Librelancer/src/LibreLancer.Base/LibreLancer.Base.csproj.metaproj"
This happens for each subproject. There is no csproj.metaproj
file and I'm not sure why it even looks for it as there is no reference to this file in LibreLancer.sln
.
edit again: It appears to be to do with windows/linux slashes.
Running
sed -i -e 's/\\/\//g' src/LibreLancer.sln
Fixes that error but I now get stuck at:
"/home/tom/tmp/Librelancer/src/LibreLancer.sln" (Build target) (1) ->
"/home/tom/tmp/Librelancer/src/Editor/LancerEdit/LancerEdit.csproj.metaproj" (default target) (24) ->
"/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj.metaproj" (default target) (25) ->
"/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj" (default target) (26) ->
(CoreCompile target) ->
../../extern/ImGui.NET/src/ImGui.NET/NativeIO.cs(59,37): error CS0443: Value or constant expected [/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj]
../../extern/ImGui.NET/src/ImGui.NET/NativeStyle.cs(121,39): error CS0443: Value or constant expected [/home/tom/tmp/Librelancer/src/ImGuiNet.Build451/ImGuiNet.Build451.csproj]
Which is less of an obvious issue.