I am currently preparing a release of my DRM transmitter blockset. This
package shall contain my GNU Radio blocks and a set of classes (no
blocks) used for initializing the transmitter parameters before the flow
graph is started.
At the moment, I have a source tree generated by gr_modtool based on
CMake that contains my GNU Radio blocks and creates the python module
“drm” and a second folder containing the classes for initializing where
I wrote the .i file myself and compile everything by hand. This folder
ends up in “drm_init”. Everything works fine if I do it like that but
it’s quite inconvenient.
Now I’d like to combine these two build processes in the CMake build and
the two modules in one.
My first try was to add the source files in the CMakeLists file in lib/,
the header files in include/. Then I added everything from my custom
swig file in the existing one in swig/.
It compiles without any errors or warnings, but when I try to import my
module, I get “undefined symbol” errors. I looked at the swig shared
library file using “nm” and noticed that I have lots of undefined
symbols in the part that contains my former drm_init module. The C++
shared library seems fine, so I guess it’s a SWIG problem.
I would really appreciate it if somebody could give me a hint how I can
configure CMake / SWIG correctly. The current (working) configuration
can be found on github.com/fewu. The custom make file can be found under
misc/, the other in the swig/ folder.