Boost logo

Boost-Build :

Subject: [Boost-build] Building C# files
From: Deane Yang (deane_at_[hidden])
Date: 2016-01-01 14:03:14

I'm still trying to extend Boost Build to compile C# files, say, on OS X
(darwin) only.
Thanks to Vladimir, I can generate executables without any problem.

However, I'm still having creating a C# library with the suffix ".dll".
Here is my attempt (resulting error message below):

import generators ;
import type ;
import toolset : flags ;

type.register CS : cs ;
type.register CSDLL : csdll ;

type.set-generated-target-suffix CSDLL : : dll ;

generators.register-composing mcs.make-exe : CS : EXE ;
generators.register-composing mcs.make-dll : CS : CSDLL ;

import features ;
import feature : feature ;

actions make-exe bind CS_REFERENCE
  mcs -target:exe -r:$(CS_REFERENCE) -out:$(<) $(>)

rule link
  DEPENDS $(<) : [ on $(<) return $(CS_REFERENCE) ] ;

actions make-dll
  mcs -target:library -out:$(<).dll $(>)


If I comment out the problematic line, the output has the suffix ".csdll".

Here is the error message I get:

error: Ambiguous key <target-type>CSDLL <address-model>64
<asynch-exceptions>off <debug-symbols>on <define>DEBUG
<define>PRODUCT=TipsVal <define>VERSION_DATE=2016-1-4
<define>VERSION_STRING=2.1.8 <exception-handling>on <extern-c-nothrow>off
<hardcode-dll-paths>true <host-os>darwin <include>..
<include>../../../boost <inlining>off <install-dependencies>off
<link>shared <main-target-type>CSDLL <optimization>off <os>MACOSX <pch>on
<preserve-test-targets>on <profiling>off <python-debugging>off
<python.interpreter>python <python>2.7 <rtti>on <runtime-debugging>on
<runtime-link>shared <stdlib>native <strip>off <suppress-import-lib>false
<symlink-location>project-relative <target-os>darwin
<target>object(file-target)@1784 <threadapi>pthread <threading>multi
<toolset-darwin:version>4.2.1 <toolset>darwin <user-interface>console
<variant>debug <warnings-as-errors>off <warnings>on


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at