Hi,
I try hard to get the following szenario working:
module/geometry/objects.pyx
module/geometry/objects.pxd
module/calc/converter.pyx <- uses objects.pxd
module/calc/converter.pxd
module/calc/user.pyx <- uses objects.pxd & converter.pxd
module/calc/user.pxd
module/reconstruct/reconstruct.pxy <- uses user.pxd
In an ideal world, changing objects.pxd should trigger a rebuild of
converter.
user and reconstruct. This is not an ideal world; i didn't even manage
to get this to compile automatically.
Things I tried
1) numpy.distutils, monkey patched to use Cython instead of pyrex [1].
This seemed to work great, but upon test running I get the following
problem while importing user in reconstruct.pyx:
ValueError: calc.converter.Converter does not appear to be the correct
type object. Now (manually) running:
& cython calc/convert.pyx -I .
& cython calc/user.pyx -I .
and rerunning python setup.py build_ext -i (which only compiles the c
files and doesn't run cython again) fixes this. The next time I make
some changes to any files, the problem comes back again.
2) using scons tools from the python-devel branch.
I have worked my fair share with scons before; also extending it with
tools; So i know my fair share about it. I added an SConstruct in
module and SConscripts in the submodules. I also hacked at the tool
because it did assign strange module names to the modules upon
compilation. I am willing to work on this solution, which currently
seems the most promising for me; nevertheless I realize that also this
solution is not able to track dependencies. I also had some
difficulties running my test suite:
ImportError: No module named converter
when trying to import converter in user when trying to import user in
reconstruct.
I desperatly need help. Aren't others working with highly dependant
cython modules? I would also invest some time to work on any build
system that is considered feasible.
[1]
http://www.mail-archive.com/numpy-di...@scipy.org/msg20199.html
Thanks for reading and your help!
Holger