]> Creatis software - gdcm.git/blob - gdcmPython/CMakeLists.txt
Fix: Python/vtk build again
[gdcm.git] / gdcmPython / CMakeLists.txt
1 #IF(GDCM_WRAP_PYTHON)
2 #If we reach this dir we have selected this option
3
4 # TODO
5 # http://www.cmake.org/pipermail/cmake/2003-August/004185.html
6 # http://www.cmake.org/pipermail/cmake/2003-January/001092.html
7
8 INCLUDE_DIRECTORIES(
9   ${GDCM_SOURCE_DIR}/src
10   ${PYTHON_INCLUDE_PATH}
11   ${GDCM_BINARY_DIR}/
12 )
13
14 SET(GDCM_INC
15   ${GDCM_SOURCE_DIR}/src
16 )
17
18 SET(SWIG_INC
19   ${PYTHON_INCLUDES}
20   ${GDCM_INC}
21 )
22
23 #ADD_CUSTOM_TARGET(mathieu ALL)
24
25 SET(GDCM_PYTHON_SOURCES
26   gdcm_wrap.cxx
27 )
28
29 SET_SOURCE_FILES_PROPERTIES(gdcm_wrap.cxx GENERATED)
30
31 ADD_LIBRARY(pygdcm ${GDCM_PYTHON_SOURCES})
32 # http://www.cmake.org/pipermail/cmake/2003-August/004190.html
33 # SET_TARGET_PROPERTIES(pygdcm PROPERTIES PREFIX "_")
34 TARGET_LINK_LIBRARIES(pygdcm 
35   ${PYTHON_LIBRARY}
36   gdcm
37 )
38
39 #-----------------------------------------------------------------------------
40 # As of 09/10/2003 there was no FindSWIG.cmake
41 # later we should use SWIG instead of swig
42 # Build our custom command :
43 ADD_CUSTOM_COMMAND(
44   SOURCE    ${GDCM_SOURCE_DIR}/gdcmPython/gdcm.i
45   COMMAND   swig
46   ARGS      -python -c++ -I${GDCM_SOURCE_DIR}/src -o 
47             ${GDCM_BINARY_DIR}/gdcmPython/gdcm_wrap.cxx 
48             ${GDCM_SOURCE_DIR}/gdcmPython/gdcm.i 
49   TARGET    pygdcm
50   OUTPUTS   ${GDCM_BINARY_DIR}/gdcmPython/gdcm_wrap.cxx
51   COMMENT   "Generating gdcm_wrap.cxx based on gdcm.i"
52 )
53
54 IF(GDCM_VTK)
55   INCLUDE_DIRECTORIES(
56     ${GDCM_SOURCE_DIR}/vtk
57   )
58
59   SET(vtkgdcmPython_la_SOURCES
60       ${GDCM_SOURCE_DIR}/vtk/vtkGdcmReader.cxx
61   )
62   SET_SOURCE_FILES_PROPERTIES(vtkGdcmReaderPython.cxx GENERATED)
63   
64   # Configure Python module, which is the plugin itself
65   IF (GDCM_WRAP_PYTHON)
66     VTK_WRAP_PYTHON2(vtkgdcmPython gdcmfoo
67                    ${vtkgdcmPython_la_SOURCES})
68     # The C++ files must be made into a C++ library
69     ADD_LIBRARY(vtkgdcmPython SHARED ${gdcmfoo})
70     # set the libraries to link against
71     TARGET_LINK_LIBRARIES (vtkgdcmPython
72                          pygdcm
73                          vtkgdcm
74                          vtkCommonPython
75                          vtkIOPython)
76   ENDIF (GDCM_WRAP_PYTHON)
77   
78   #generate a setup.py according to VTK installation 
79   #put it in subdir in order to not override old one
80   # as it is a pain...override existing file...
81   
82   GET_FILENAME_COMPONENT(VTKPATH ${VTK_DIR}/../../ ABSOLUTE)
83   CONFIGURE_FILE(
84       ${GDCM_SOURCE_DIR}/gdcmPython/setup.py.in
85       ${GDCM_SOURCE_DIR}/setup.py
86   )
87
88 ENDIF(GDCM_VTK)
89
90 #I should install in path of PYTHON_LIBRARY
91 #GET_FILENAME_COMPONENT(PYTHON_LIB_INSTALL ${PYTHON_LIBRARY} PATH)
92 #GET_FILENAME_COMPONENT(SITEPACKAGE ${PYTHON_LIB_INSTALL}/../site-packages ABSOLUTE)
93 #MESSAGE(STATUS ${SITEPACKAGE})
94 #INSTALL_FILES(/include "\\.h$")
95 #INSTALL_TARGETS(/lib/ gdcm)
96
97 INSTALL_TARGETS(/lib/ "gdcm.py")
98
99 # When installing swig-generated python module one should pay attention
100 # to library naming convention, see here for more detail:
101 # http://www.swig.org/Doc1.3/Python.html#n6
102 # even with the $swig -module mylib, there is always a trailing underscore added