]> Creatis software - gdcm.git/blobdiff - setup.py
* src/gdcmHeader.h doesn't make unnecessary reference to
[gdcm.git] / setup.py
index 4a75e2d0af31082b7fb9e2fe66dc0021c3e14499..7697a86dd576dd3484e8875642b2df455276cb7a 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,50 +1,90 @@
 from distutils.core import setup
 import glob, os, sys, shutil
-from distutilsSwigCPlusPlus import *
+from distutilsWrapping import *
+from WrapSwig import *
+from WrapVTK import *
 
 ThisModule='gdcmPython'
 gdcmPythonSrcDir=ThisModule
 gdcmSrcDir      ="src"
+gdcmvtkSrcDir   ="vtk"
 gdcmDictsDir    ="Dicts"
-gdcmDataDir     ="Data"
+gdcmTestDir     ="Test"
 
 # Due to a disutil oddity on Unices : see
 # http://aspn.activestate.com/ASPN/Mail/Message/distutils-sig/588325
 if(os.name=='posix'):
-   targetDir=os.path.join('lib','python'+sys.version[:3],'site-packages')
-   libraries=["stdc++"]
-   macros   =[('__STDC_LIMIT_MACROS', '1')]
+       targetDir=os.path.join('lib','python'+sys.version[:3],'site-packages')
+       libraries=["stdc++"]
+       macros   =[('__STDC_LIMIT_MACROS', '1')]
+
+       VTK_PATH="/usr"
+       vtkWrapper="vtkWrapPython"
 else:
-   targetDir=os.path.join('lib','site-packages')
-   libraries=["WSOCK32"]
-   macros   =[]
+       targetDir=os.path.join('lib','site-packages')
+       libraries=["WSOCK32"]
+       macros   =[]
+
+       try:
+               VTK_PATH=os.environ['VTK_PATH']
+       except KeyError,e:
+               err=str(e)
+               print "Environment variable",err[err.rfind(':')+1:],'not defined, '\
+                      'please fix it!'
+               VTK_PATH="c:\\Creatis\\vtkDistrib"
+       vtkWrapper=os.path.join(VTK_PATH,"bin","vtkWrapPython")
 
 targetDir=os.path.join(targetDir, ThisModule)
 
+# For the Swig compilation
 Sources = []
 Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.cxx")))
-Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.h")))
+#Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.h")))
 Sources.append(os.path.join(gdcmPythonSrcDir,"gdcm.i"))
 
+# For the VTK compilation
+VTK_INCLUDE_DIR=os.path.join(VTK_PATH,"include","vtk")
+VTK_LIB_DIR=os.path.join(VTK_PATH,"lib","vtk")
+
+vtkSources = []
+vtkSources.extend(glob.glob(os.path.join(gdcmvtkSrcDir,"vtk*.cxx")))
+vtkSources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.cxx")))
+#vtkSources.extend(glob.glob(os.path.join(gdcmvtkSrcDir,"vtk*.h")))
+
+vtkLibraries=["vtkCommon","vtkCommonPython",
+              "vtkIO","vtkIOPython",
+              "vtkFiltering","vtkFilteringPython"]
+
 setup(name=ThisModule,
-      version="0.1",
+      version="0.2",
       description="...",
       author="frog",
       author_email="frog@creatis.insa-lyon.fr",
       url="http://www.creatis.insa-lyon.fr/",
-      packages=[ gdcmPythonSrcDir,
+      packages=[ '.',
+                 gdcmPythonSrcDir,
                  gdcmPythonSrcDir + '.demo' ],
-      cmdclass={'build_ext':mybuild_ext}, # redirects default build_ext
-      ext_modules=[MyExtension(
-                   name='_gdcm',
-                   sources=Sources,
-                   include_dirs=[gdcmSrcDir],
-                   libraries=libraries,
-                   define_macros=macros,
-                   swig_cpp=1,
-                   swig_include=[ gdcmSrcDir] ) ],
-      data_files=[(os.path.join(targetDir,"Data"),
-                   glob.glob(os.path.join(gdcmDataDir,"*.*"))),
+      cmdclass={'build_ext':build_extWrap}, # redirects default build_ext
+      ext_modules=[SwigExtension(name='_gdcm',
+                                 sources=Sources,
+                                 include_dirs=[gdcmSrcDir],
+                                 libraries=libraries,
+                                 define_macros=macros,
+                                 swig_cpp=1,
+                                 swig_include=[gdcmSrcDir]
+                                ),
+                   VTKExtension(name='gdcmPython.vtkgdcmPython',
+                                sources=vtkSources,
+                                include_dirs=[gdcmSrcDir,gdcmvtkSrcDir,
+                                              VTK_INCLUDE_DIR],
+                                libraries=libraries+vtkLibraries,
+                                define_macros=macros,
+                                library_dirs=[VTK_LIB_DIR],
+                                vtkWrapper=vtkWrapper,
+                               ),
+                                               ],
+      data_files=[(os.path.join(targetDir,gdcmTestDir),
+                   glob.glob(os.path.join(gdcmTestDir,"*.acr"))),
                   (os.path.join(targetDir,"Dicts"),
                    glob.glob(os.path.join(gdcmDictsDir,"*.*"))),
                 ]