Using external libraries in root without making dictionaries

Hi all,

I have a library based on a FEM packages called dealII. This is a lot of complex code (both my part and the dealII part). What I would like to do is something like
/************* Schematic mycxx.cxx file *****************/

/rootincludes etc/
#include

SomeObjectInMyLib *an_object = 0;

void InitObject()
{
an_object = new SomeObjectInMyLib;
}

void DoSomeThingWithTheObject(/./)
{
an_object->JumpAround();
}

/*************** ends here ******************/

and then in a root-sessoin

root> .L libMyLib.so
root> .L libwhateverisneeded.so
root> gSystem->AddIncludePath(“whatever is needed”);
root> .L mycxx.cxx+
root> InitObject();

This is easy enough to do if rootcint can understand all includes needed, but if it can’t?
There are thousands of include files and different objects involved and I don’t needed
to be able to access them directly from cint, only via functions the way I’ve tried to
suggest above.

First: Is the question clear to anyone?
Second: Is there a solution?

kind regards

Joa

Hi,

You can do that by hiding as much as needed from CINT by using the CINT macro:

[code]************* Schematic mycxx.cxx file *****************/

/rootincludes etc/
#ifndef CINT
#include

SomeObjectInMyLib *an_object = 0;
#endif

void InitObject()
{
an_object = new SomeObjectInMyLib;
}

void DoSomeThingWithTheObject(/./)
{
an_object->JumpAround();
} [/code]

Cheers,
Philippe