]> Creatis software - gdcm.git/blobdiff - gdcmPython/CMakeLists.txt
Minor cleanup for toplevel CMakeLists
[gdcm.git] / gdcmPython / CMakeLists.txt
index a6e8adc8641e251c5e4ecab095fbdcfd2eb5bf28..eb5c1a19999f7de5d2aa7db341b6411797612240 100644 (file)
-#IF(GDCM_WRAP_PYTHON)
-#If we reach this dir we have selected this option
-
-
-#TODO
-#http://www.cmake.org/pipermail/cmake/2003-August/004185.html
-#http://www.cmake.org/pipermail/cmake/2003-January/001092.html
-
+# TODO
+# http://www.cmake.org/pipermail/cmake/2003-August/004185.html
+# http://www.cmake.org/pipermail/cmake/2003-January/001092.html
 
 INCLUDE_DIRECTORIES(
   ${GDCM_SOURCE_DIR}/src
   ${PYTHON_INCLUDE_PATH}
+  ${GDCM_BINARY_DIR}/
 )
 
-SET(GDCM_INC
-  ${GDCM_SOURCE_DIR}/src
-#  -I$(top_builddir)
-)
-
-SET(SWIG_INC
-  ${PYTHON_INCLUDES}
-  ${GDCM_INC}
-)
-
-ADD_CUSTOM_TARGET(mathieu ALL)
+#-----------------------------------------------------------------------------
+# Create the gdcmVersion.py file:
+FILE(WRITE ${GDCM_BINARY_DIR}/gdcmVersion.py
+  "gdcmVERSION=\"${GDCM_VERSION_FULL}\""
+  )
 
-SET(GDCM_PYTHON_SOURCES
-  gdcm_wrap.cxx
-)
+#-----------------------------------------------------------------------------
+# SWIG Wrapping
+#
 
+# Since the file gdcm_wrap.cxx does not exist, mark it as GENERATED:
 SET_SOURCE_FILES_PROPERTIES(gdcm_wrap.cxx GENERATED)
+ADD_LIBRARY(pygdcm gdcm_wrap.cxx)
 
-ADD_LIBRARY(pygdcm ${GDCM_PYTHON_SOURCES})
-#http://www.cmake.org/pipermail/cmake/2003-August/004190.html
-SET_TARGET_PROPERTIES(pygdcm PROPERTIES PREFIX "")
 TARGET_LINK_LIBRARIES(pygdcm 
   ${PYTHON_LIBRARY}
   gdcm
 )
+# http://www.cmake.org/pipermail/cmake/2003-August/004190.html
+# SET_TARGET_PROPERTIES(pygdcm PROPERTIES PREFIX "_")
 
 #-----------------------------------------------------------------------------
+# SWIG Wrapping
+#
+
 # As of 09/10/2003 there was no FindSWIG.cmake
 # later we should use SWIG instead of swig
 # Build our custom command :
 ADD_CUSTOM_COMMAND(
-  SOURCE    ${GDCM_SOURCE_DIR}/gdcmPython/gdcm.i
+  TARGET    pygdcm
   COMMAND   swig
   ARGS      -python -c++ -I${GDCM_SOURCE_DIR}/src -o 
             ${GDCM_BINARY_DIR}/gdcmPython/gdcm_wrap.cxx 
             ${GDCM_SOURCE_DIR}/gdcmPython/gdcm.i 
-  TARGET    pygdcm
+  SOURCE    ${GDCM_SOURCE_DIR}/gdcmPython/gdcm.i
   OUTPUTS   ${GDCM_BINARY_DIR}/gdcmPython/gdcm_wrap.cxx
+  COMMENT   "Generating gdcm_wrap.cxx/gdcm.py based on gdcm.i"
 )
 
+# This swig command will also outputs gdcm.py :
+SET_SOURCE_FILES_PROPERTIES(gdcm.py GENERATED)
 
-
-
+#-----------------------------------------------------------------------------
+# VTK Wrapping
+# 
 IF(GDCM_VTK)
   INCLUDE_DIRECTORIES(
     ${GDCM_SOURCE_DIR}/vtk
   )
 
   SET(vtkgdcmPython_la_SOURCES
-#      vtkGdcmReaderPython.cxx
-#      vtkGdcmInit.cxx
       ${GDCM_SOURCE_DIR}/vtk/vtkGdcmReader.cxx
   )
   SET_SOURCE_FILES_PROPERTIES(vtkGdcmReaderPython.cxx GENERATED)
-  #vtkWrapPythonInit.c
   
-  # The C++ files must be made into a C++ library
-  #ADD_LIBRARY ( vtkgdcmPython ${vtkgdcmPython_la_SOURCES})
-
-  # set the libraries to link against
-  #TARGET_LINK_LIBRARIES(vtkgdcmPython vtkCommon)
-
   # Configure Python module, which is the plugin itself
   IF (GDCM_WRAP_PYTHON)
     VTK_WRAP_PYTHON2(vtkgdcmPython gdcmfoo
                    ${vtkgdcmPython_la_SOURCES})
+    # The C++ files must be made into a C++ library
     ADD_LIBRARY(vtkgdcmPython SHARED ${gdcmfoo})
+    # set the libraries to link against
     TARGET_LINK_LIBRARIES (vtkgdcmPython
-                         pygdcm
-                         vtkgdcm
-                         vtkCommonPython
-                         vtkIOPython)
+                           pygdcm
+                           vtkgdcm
+                           vtkCommonPython
+                           vtkIOPython)
   ENDIF (GDCM_WRAP_PYTHON)
+  
+  #generate a setup.py according to VTK installation 
+  #put it in subdir in order to not override old one
+  # as it is a pain...override existing file...
+  
+  GET_FILENAME_COMPONENT(VTKPATH ${VTK_DIR}/../../ ABSOLUTE)
+  CONFIGURE_FILE(
+      ${GDCM_SOURCE_DIR}/gdcmPython/setup.py.in
+      ${GDCM_BINARY_DIR}/setup.py
+  )
+  #MESSAGE(STATUS ${VTKPATH})
 ENDIF(GDCM_VTK)
 
-#I should install in path of PYTHON_LIBRARY
+#-----------------------------------------------------------------------------
+# Install stuff:
+
+#Should install in path of PYTHON_LIBRARY and not the default CMAKE_INSTALL_PREFIX
+
 GET_FILENAME_COMPONENT(PYTHON_LIB_INSTALL ${PYTHON_LIBRARY} PATH)
-GET_FILENAME_COMPONENT(SITEPACKAGE ${PYTHON_LIB_INSTALL}/../site-packages ABSOLUTE)
-MESSAGE(STATUS ${SITEPACKAGE})
+GET_FILENAME_COMPONENT(SITEPACKAGE 
+  ${PYTHON_LIB_INSTALL}/../site-packages ABSOLUTE)
+#MESSAGE(STATUS ${SITEPACKAGE})
 #INSTALL_FILES(/include "\\.h$")
 #INSTALL_TARGETS(/lib/ gdcm)
 
+# gdcm.py is a file generated by swig
+# then from python you can do import gdcm, and it will load _gdcm.so
+#INSTALL_TARGETS(/lib/ gdcm.py)
+#INSTALL_PROGRAMS(/lib/ gdcm.py)
+#INSTALL_FILES(/lib/ .py gdcm.py)
+
 # When installing swig-generated python module one should pay attention
 # to library naming convention, see here for more detail:
 # http://www.swig.org/Doc1.3/Python.html#n6