Hi, I’m integrating berkelium (see herefor info)
I’ve just got everything compiling, mostly by copying the build targetadds used by awesomium, and every use of the word awesomium in the build system then cloning it with berkelium. (which worked surprisingly well, though apparently means I’ve used the deprecated PandaModules system, but I don’t know how I should be doing it otherwise)
Still haven’t wrapped everything up properly yet, just trying to ensure I can get them talking at all.
My first question is a silly one, but I can’t figure it out:
Where does my python function end up, where should I import from?
I’ve got a single published c++ function,
inside berkelium_init.h:
class berkelium_p3d {
PUBLISHED:
void berkelium_init();
};
(the class/method naming will be improved once I’ve got it working)
and I just want to run it, which will tell me if python->panda->berkelium is working,
The interrogate command used during the compile is
built/bin/interrogate -srcdir panda/src/berkelium -Ipanda/src/berkelium -Dvolatile -Dmutable -DCPPPARSER -D__STDC__=1 -D__cplusplus -D__inline -longlong __int64 -D_X86_ -DWIN32_VC -D_WIN32 -D_MSC_VER=1500 -D"_declspec(param)=" -D_near -D_far -D__near -D__far -D__stdcall -oc built/tmp/libberkelium_igate.cxx -od built/pandac/input/libberkelium.in -fnames -string -refcount -assert -python-native -Sbuilt/include/parser-inc -Ipanda/src/berkelium -Sthirdparty/win-python/include -Sthirdparty/win-libs-vc9/berkelium/include -Sbuilt/tmp -Sbuilt/include -DMAKEPANDA= -DBUILDING_PANDABERKELIUM -module p3berkelium -library libberkelium berkelium_init.h panda_window_delegate.h pandaberkelium_composite1.cxx
Could someone who knows these tools well tell me where I should be looking for the python produced (where I should be importing it from). My googling suggested it would be in pandac.berkelium (from “-module p3berkelium” with the p3 removed) but python tells me otherwise, maybe its just not working yet?
as an aside, interrogate seems to not like preprocessing instructions that compare 2 macros
e.g.
#if BERKELIUM_PLATFORM == PLATFORM_WINDOWS
where both were defined as 0 threw a parse error.
Whats annoying is that throwing
#ifndef BUILDING_PYTHONINTERFACES
around it didn’t avoid the problem so I had to hack in a fix to the problem. Such a solution might not always be available, so maybe this should be fixed?