-
Notifications
You must be signed in to change notification settings - Fork 1
Complaints
You probably did it wrong. The fundamental problem with SWIG is that it considers C++ somehow "golden", but C++ is just another language. Even your C++ users should not use the C++ implementation directly. CHUG helps you to hide your implementation, in order to facilitate minor version upgrades of shared libraries, while still allowing the efficiency of pointer-copies in the wrappers.
But if you really love your API, you can probably reproduce it in Java (or in CHUG YAML directly), so you can keep your implementation. PLUG produces only the C++ header.
However, CHUG imposes more restrictions than SWIG does. For example, multiple virtual inheritance is completely unsupported. If you're curious what works, just code up some Java, HUG it to CHUG YAML, modify the YAML, and see what PLUG does with it. The turn-around time is way shorter than with SWIG. (I have wasted many mythical man-months on SWIG.)
If you really love your complicated API, SWIG is a better option for you.
Write your own plugin. That's why it's written in Ruby. We like how Ruby facilitates plugins via guerrilla-patching. A CHUG plugin ("chug-in") is much easier to write than the corresponding set of typemaps in SWIG (unless you are already a typemap expert).