]> Creatis software - gdcm.git/blob - setup.py
7697a86dd576dd3484e8875642b2df455276cb7a
[gdcm.git] / setup.py
1 from distutils.core import setup
2 import glob, os, sys, shutil
3 from distutilsWrapping import *
4 from WrapSwig import *
5 from WrapVTK import *
6
7 ThisModule='gdcmPython'
8 gdcmPythonSrcDir=ThisModule
9 gdcmSrcDir      ="src"
10 gdcmvtkSrcDir   ="vtk"
11 gdcmDictsDir    ="Dicts"
12 gdcmTestDir     ="Test"
13
14 # Due to a disutil oddity on Unices : see
15 # http://aspn.activestate.com/ASPN/Mail/Message/distutils-sig/588325
16 if(os.name=='posix'):
17         targetDir=os.path.join('lib','python'+sys.version[:3],'site-packages')
18         libraries=["stdc++"]
19         macros   =[('__STDC_LIMIT_MACROS', '1')]
20
21         VTK_PATH="/usr"
22         vtkWrapper="vtkWrapPython"
23 else:
24         targetDir=os.path.join('lib','site-packages')
25         libraries=["WSOCK32"]
26         macros   =[]
27
28         try:
29                 VTK_PATH=os.environ['VTK_PATH']
30         except KeyError,e:
31                 err=str(e)
32                 print "Environment variable",err[err.rfind(':')+1:],'not defined, '\
33                        'please fix it!'
34                 VTK_PATH="c:\\Creatis\\vtkDistrib"
35         vtkWrapper=os.path.join(VTK_PATH,"bin","vtkWrapPython")
36
37 targetDir=os.path.join(targetDir, ThisModule)
38
39 # For the Swig compilation
40 Sources = []
41 Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.cxx")))
42 #Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.h")))
43 Sources.append(os.path.join(gdcmPythonSrcDir,"gdcm.i"))
44
45 # For the VTK compilation
46 VTK_INCLUDE_DIR=os.path.join(VTK_PATH,"include","vtk")
47 VTK_LIB_DIR=os.path.join(VTK_PATH,"lib","vtk")
48
49 vtkSources = []
50 vtkSources.extend(glob.glob(os.path.join(gdcmvtkSrcDir,"vtk*.cxx")))
51 vtkSources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.cxx")))
52 #vtkSources.extend(glob.glob(os.path.join(gdcmvtkSrcDir,"vtk*.h")))
53
54 vtkLibraries=["vtkCommon","vtkCommonPython",
55               "vtkIO","vtkIOPython",
56               "vtkFiltering","vtkFilteringPython"]
57
58 setup(name=ThisModule,
59       version="0.2",
60       description="...",
61       author="frog",
62       author_email="frog@creatis.insa-lyon.fr",
63       url="http://www.creatis.insa-lyon.fr/",
64       packages=[ '.',
65                  gdcmPythonSrcDir,
66                  gdcmPythonSrcDir + '.demo' ],
67       cmdclass={'build_ext':build_extWrap}, # redirects default build_ext
68       ext_modules=[SwigExtension(name='_gdcm',
69                                  sources=Sources,
70                                  include_dirs=[gdcmSrcDir],
71                                  libraries=libraries,
72                                  define_macros=macros,
73                                  swig_cpp=1,
74                                  swig_include=[gdcmSrcDir]
75                                 ),
76                    VTKExtension(name='gdcmPython.vtkgdcmPython',
77                                 sources=vtkSources,
78                                 include_dirs=[gdcmSrcDir,gdcmvtkSrcDir,
79                                               VTK_INCLUDE_DIR],
80                                 libraries=libraries+vtkLibraries,
81                                 define_macros=macros,
82                                 library_dirs=[VTK_LIB_DIR],
83                                 vtkWrapper=vtkWrapper,
84                                ),
85                                                 ],
86       data_files=[(os.path.join(targetDir,gdcmTestDir),
87                    glob.glob(os.path.join(gdcmTestDir,"*.acr"))),
88                   (os.path.join(targetDir,"Dicts"),
89                    glob.glob(os.path.join(gdcmDictsDir,"*.*"))),
90                 ]
91      )