X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=setup.py;h=6aeda18e82860e9faf55d2ed4c4adfde6b740ba2;hb=aba8714645174c0c7d3c7aadf6af1832743e2971;hp=b5fdadae53675d4ac9affb83b1dbcaec8a9124ea;hpb=615d17146ca60052376b1c69b2c2ddde0c1efba5;p=gdcm.git diff --git a/setup.py b/setup.py index b5fdadae..6aeda18e 100644 --- a/setup.py +++ b/setup.py @@ -3,10 +3,14 @@ import glob, os, sys, shutil from distutilsWrapping import * from WrapSwig import * from WrapVTK import * +from gdcmVersion import * ThisModule='gdcmPython' gdcmPythonSrcDir=ThisModule gdcmSrcDir ="src" +gdcmJpeg8SrcDir =os.path.join('src', 'jpeg', 'libijg8') +gdcmJpeg12SrcDir=os.path.join('src', 'jpeg', 'libijg12') +gdcmJpgSrcDir=os.path.join('src', 'jpeg', 'ljpg') gdcmvtkSrcDir ="vtk" gdcmDictsDir ="Dicts" gdcmTestDir ="Test" @@ -18,7 +22,7 @@ if(os.name=='posix'): libraries=["stdc++"] macros =[('__STDC_LIMIT_MACROS', '1')] - VTK_PATH="/usr/local" + VTKPATH="/usr" vtkWrapper="vtkWrapPython" else: targetDir=os.path.join('lib','site-packages') @@ -26,37 +30,72 @@ else: macros =[] try: - VTK_PATH=os.environ['VTK_PATH'] + VTKPATH=os.environ['VTKPATH'] 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") + VTKPATH="c:\\Creatis\\vtkDistrib" + vtkWrapper=os.path.join(VTKPATH,"bin","vtkWrapPython") targetDir=os.path.join(targetDir, ThisModule) -# For the Swig compilation +### Sources section: determination of sources for the extensions: +# Sources 1a/ The kernel of gdcm itself (which wrapped with Swig) +# defines the first extension Sources = [] Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.cxx"))) -#Sources.extend(glob.glob(os.path.join(gdcmSrcDir,"*.h"))) Sources.append(os.path.join(gdcmPythonSrcDir,"gdcm.i")) +# Sources 1b/ The kernel of gdcm depends on a jpeg library whose sources are +# contained in subdir gdcmJpeg8SrcDir. But within this subdir +# some of the C files should not be compiled (refer to +# gdcmJpeg8SrcDir/Makefile.am) ! -# For the VTK compilation -VTK_INCLUDE_DIR=os.path.join(VTK_PATH,"include","vtk") -VTK_LIB_DIR=os.path.join(VTK_PATH,"lib","vtk") +Jpeg8Sources = glob.glob(os.path.join(gdcmJpeg8SrcDir,"j*.c")) +Jpeg8SourcesToRemove = ['jmemansi.c', 'jmemname.c', 'jmemdos.c', 'jmemmac.c'] +for Remove in Jpeg8SourcesToRemove: + ### Because setup.py is a multiple pass process we need to trap + ### the case where the files were allready wed out on a previous pass. + try: + Jpeg8Sources.remove(os.path.join(gdcmJpeg8SrcDir, Remove)) + except ValueError: + continue +Sources.extend(Jpeg8Sources) +Jpeg12Sources = glob.glob(os.path.join(gdcmJpeg12SrcDir,"j*.c")) +Jpeg12SourcesToRemove = ['jmemansi12.c', 'jmemname12.c', 'jmemdos12.c', 'jmemmac12.c'] +for Remove in Jpeg12SourcesToRemove: + ### Because setup.py is a multiple pass process we need to trap + ### the case where the files were allready wed out on a previous pass. + try: + Jpeg12Sources.remove(os.path.join(gdcmJpeg12SrcDir, Remove)) + except ValueError: + continue +Sources.extend(Jpeg12Sources) + +#For 'xmedcon' Jpeg Lossless +JpgSources =glob.glob(os.path.join(gdcmJpgSrcDir,"*.c")) +Sources.extend(JpgSources) + +# Sources 2/ The second extension contains the VTK classes (which we wrap +# with the vtk wrappers): +VTK_INCLUDE_DIR=os.path.join(VTKPATH,"include","vtk") +VTK_LIB_DIR=os.path.join(VTKPATH,"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"))) +vtkSources.extend(Jpeg8Sources) +vtkSources.extend(Jpeg12Sources) +vtkSources.extend(JpgSources) +vtkSources.remove(os.path.join(gdcmvtkSrcDir,"vtkgdcmViewer.cxx")) vtkLibraries=["vtkCommon","vtkCommonPython", "vtkIO","vtkIOPython", "vtkFiltering","vtkFilteringPython"] +##### setup(name=ThisModule, - version="0.2", + version=gdcmVERSION, description="...", author="frog", author_email="frog@creatis.insa-lyon.fr", @@ -67,7 +106,8 @@ setup(name=ThisModule, cmdclass={'build_ext':build_extWrap}, # redirects default build_ext ext_modules=[SwigExtension(name='_gdcm', sources=Sources, - include_dirs=[gdcmSrcDir], + include_dirs=[gdcmSrcDir,gdcmJpeg8SrcDir, + gdcmJpeg12SrcDir,gdcmJpgSrcDir], libraries=libraries, define_macros=macros, swig_cpp=1, @@ -87,5 +127,7 @@ setup(name=ThisModule, glob.glob(os.path.join(gdcmTestDir,"*.acr"))), (os.path.join(targetDir,"Dicts"), glob.glob(os.path.join(gdcmDictsDir,"*.*"))), + (targetDir, + glob.glob(os.path.join(gdcmSrcDir,"..","gdcmVersion.py"))), ] )