0

I'm looking at cross-platform build systems for .Net projects. Phantom looks interesting, however I'm wondering if it will work OK on Linux with Mono. It is built on top of Boo. It seems like Boo has some support in Mono (http://www.mono-project.com/Boo), but I don't know too much about it.

Can I use Phantom on a Mono/Linux setup?

ngm
  • 7,277
  • 1
  • 53
  • 62

1 Answers1

1

I have just tested it. Although it is a good candidate, it does not work 100% well out of the box on (at least my) Linux machine. I was able to compile it with xbuild (you can't do it with the phantom.exe in the libs, because it is too old to have important check from the Mono's point of view). Many of the Phantom's unit tests pass, however not all, can't really tell whether they are core functionalities. There are also some issues with casing, mainly with NuGet.exe, these can be worked around using MONO_IOMAP. So overall, if you are looking for something which is tested and already works, I would not recommend it (yet! - one can see from the github that Linux was at least tried to be supported).

I can propose you two alternative solutions:

xbuild is the Mono's equivalent of MSBuild. It works well most of the time, although not all of the features present in MSBuild are implemented. The sln/proj format is also used in MonoDevelop and Visual Studio. It is good enough for many projects, for example this is what Mooege project uses and what I've used most of the time.

NAnt is quite mature, actively developed build system with Ant-like approach, so it will probably suit you when more sophisticated builds are needed.

konrad.kruczynski
  • 46,413
  • 6
  • 36
  • 47
  • Thanks for the thorough answer! And thanks for the recommendations. I was hoping to find something more script-like and less XML-based. I have been using psake on Windows, and find it to be very good. However being built on PowerShell I don't think there's much chance of it working with Mono/Linux. Another possibility was rake/albacore, but again I don't think Mono is supported. I was hoping Phantom might be able to piggyback on the Mono Boo support, but I guess it's not quite there yet. I will probably go with NAnt or xbuild, as at least they are stable and supported. – ngm Apr 20 '12 at 14:54
  • Or there is also potentially FAKE (https://github.com/forki/FAKE/), an F# build script, but again I am not certain about Mono support. There is this -> https://github.com/forki/FAKE/pull/25 but pretty sure that's not stable right now either. – ngm Apr 20 '12 at 15:10