Boost logo

Boost-Build :

Subject: [Boost-build] Extending bjam to compile C# source using mono
From: Deane Yang (deane_at_[hidden])
Date: 2015-09-07 16:55:27


I am trying to extend Boost Build to compile C# files using csc.exe on
Windows and msc (Mono compiler) on Linux and OS X.

First, for backward compatibility reasons, I am using version 1.49.0 of
boost and building Boost Build v2 using the source provided in that
distribution.

The main issues I'm running into are the following:
1) How do I set up platform-dependent compiler names and option delimiters
(/ for windows and - for other OS's)?
2) How do I create a "library" that is called <library name>.dll on all
platforms rather than, say, lib<library name>.dylib on OS X?
3) Most importantly, how do I get the right path to the output of a target?
When I do the following on OS X:

feature cs-reference : : free dependency path ;
flags mcs.make-exe CS_REFERENCE <cs-reference> ;
actions make-exe
{
  mcs -target:exe -r:$(CS_REFERENCE) -out:$(<) $(>)
}

and my Jamfile has

lib cslib : cs_source
                  ;

exe test : test.cs
                    : <cs-reference>cslib
                    ;

and I do "bjam -n", I get

mcs -target:exe
-r:<pbin/darwin-4.2.1/debug/address-model-64/threading-multi>libcslib.dylib
-out:bin/darwin-4.2.1/debug/address-model-64/threading-multi/test test.cs

Note the spurious "<p" and ">" in the option "-r:". How do I get rid of
that?



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk