Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-12-26 17:56:07

On Tuesday 19 December 2006 17:09, Hassan Mehmet wrote:

[personal CC for convenience, please reply to the list]

> Is there any simple overview / examples of how rules, actions and generators are all related?
> In particular I'm struggling to understand if I need to create a rule, an action, a standard generator or my own generator subclass. I have not really been able to figure this out from the manual.
> The problem is:
> I have taken over some Jamfiles written by someone else. In it they have created an action to generate CPP files from SWIG files which are then used to generate a python-extension. The action to create the CPP from SWIG follows the verbatim example in the manual and is fairly easy to follow.
> import type ;
> import generators ;
> type.register SWIG : i ;
> actions swig-action { swig -c++ -python -Iinclude -o $(<) $(>) }
> generators.register-standard swig-swig-action : SWIG : CPP ;
> The build system now knows how to convert SWIG files to CPP which are then used to create the python extension library.
> Now I want to generate a C# version. This also creates CPP
> files from SWIG but has different arguments. So I need an action like

Sorry, if you need C# version, then you don't get CPP files. I think C++ and C# are completely
different languages.

> actions swig-csharp { swig -c++ -csharp -Iinclude -o $(<) $(>) }
> The problem now is I (obviously) cannot use the python-extension rule.
> So I assume I need to create my own rule ?
> How do I get this new rule to call the swig-csharp action.
> Or do I need to do something more complicated?

You did not indicate what syntax in Jamfile you want. If you just want to be
able to convert SWIG files into C# files, using:

        cs whatever : whatever.swig ;

then what about the following:

        import type ;
        import generators ;
         type.register SWIG : i ;
         actions swig-action-cs { .................. }
        generators.register-standard swig-swig-action-cs : SWIG : CS ;

You might need to also define the CS type.


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