[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