[Dcmlib] [ATTENTION] namespace gdcm: done
Eric Boix
Eric.Boix at creatis.insa-lyon.fr
Wed Oct 13 16:40:45 CEST 2004
<20041012102546.GA27604 at tux.creatis.insa-lyon.fr> <416BE889.5010200 at kitware.com>Mime-Version: 1.0
In-Reply-To: <416BE889.5010200 at kitware.com>
Salut Mathieu,
Quoting Mathieu Malaterre <mathieu.malaterre at kitware.com>:
> En faisait une rerchere je trouve -outdir ajoute' le 08/07/2003
> http://www.swig.org/Release/CHANGES
Bon, ben c,a passe avec swig-1.3.21-6...
La compilation des pythoneries/swigeries est fixe'e. Pour memoire,
le gdcm_wrap.cxx ne compilait pas car l'ordre des %include dans
gdcmPython/gdcm.i a son importance. En gros, si tu as:
class A {};
class B {
my_method(A a) {} // ou tout autre reference a la class A
};
alors swig verra que A est deja wrappe' et generera le bon code.
Mais si tu as:
#include "A.h" // et A.h contient class A {};
class B {
my_method(A a) {}
};
alors my_method ne sera pas wrappe' correctement, car au moment
du parsing de B, swig ne sait rien de A. On notera que pour C++ le prepocessing
fait ce qu'il faut. En clair, le %include de swig n'est pas recursif sur
les %include alors que #include de C++ l'est. [je crois qu'il a y moyen
de dire a swig de recurser sur le parsing, mais cela se complique salement
car il faut etre sur de ne pas wrapper deux fois le meme code].
Moralite' dans gdcmPython.h, ecrire:
%include gdcmDicomDirObject.h
%include gdcmDicomDirElement.h
ne fonctionera pas puisque le prototype
gdcmDicomDirObject::FillObject(ListDicomDirMetaElem elemList);
fait reference a ListDicomDirMetaElem qui est defini dans gdcmDicomDirElement.h
MAIS pas encore wrappe' par swig. Moralite' il faut ecrire:
%include gdcmDicomDirElement.h
%include gdcmDicomDirObject.h
Pour les references crois'es, il faut comme en C++ annoncer la classe...
Voilou.
> Bien sur ! C'est vrai que la plupart du temps, mes commit c'est pour
> fixer des compilateurs, ou des restructuration mineures des
> CMakeLists.txt donc j'avais perdu l'habitude de le modifier. Mon erreur
> doit etre corriger au moment ou vous lisez ces lignes...
Merci, M'sieur !
> La dans ce cas integrer veut vraiment dire creer un sous repertoire dans
> ITK et ajouter gdcm a un instant t.
Aha ! Et avant tu faisais comment ? C'etait une option de cmake a condition
de faire une installation de gdcm a cote' ?
> C'est toujours ok avec vous, j'espere ?
Plus que jamais !
Frog.
More information about the Dcmlib
mailing list