X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=gdcmPython%2FCMakeLists.txt;h=932c9af282d5465fcbc76fa585540dc66c400735;hb=fd5c14391627c6e42283ced90561271af2a161a2;hp=e1bdef88ab9147b782986b3d41dc54c1e60bc8d1;hpb=53d0b05d5352bf967f0e43cd58b7b190b6479794;p=gdcm.git diff --git a/gdcmPython/CMakeLists.txt b/gdcmPython/CMakeLists.txt index e1bdef88..932c9af2 100644 --- a/gdcmPython/CMakeLists.txt +++ b/gdcmPython/CMakeLists.txt @@ -2,6 +2,7 @@ INCLUDE_DIRECTORIES( ${GDCM_SOURCE_DIR}/src + ${GDCM_SOURCE_DIR}/gdcmPython ${PYTHON_INCLUDE_PATH} ${GDCM_BINARY_DIR}/ ) @@ -28,6 +29,11 @@ SET_SOURCE_FILES_PROPERTIES(gdcm.i PROPERTIES CPLUSPLUS ON) # BUG: This is only needed with cmake <= 2.0.5 SET_SOURCE_FILES_PROPERTIES(gdcm.i PROPERTIES SWIG_FLAGS "") # END OF BUG +#FIXME : +#where must we put the keyword SHARED +#- just like in ADD_LIBRARY(vtkgdcmPython SHARED ${gdcmWrapSOURCES}) - +#to allow use of a static/shared libray ? +# JPRx SWIG_ADD_MODULE(gdcm python gdcm.i) #gdcm_wrap.cxx, or gdcmPYTHON_wrap.cxx SWIG_LINK_LIBRARIES(gdcm gdcm ${PYTHON_LIBRARIES}) @@ -62,18 +68,36 @@ IF(GDCM_VTK) IF(NOT VTK_WRAP_PYTHON) MESSAGE(FATAL_ERROR "Can't build gdcm python wrapping if VTK_WRAP_PYTHON is OFF" ) ENDIF(NOT VTK_WRAP_PYTHON) + IF("${VTK_MAJOR_VERSION}" GREATER 4) + INCLUDE(${VTK_CMAKE_DIR}/vtkWrapPython.cmake) + ENDIF("${VTK_MAJOR_VERSION}" GREATER 4) VTK_WRAP_PYTHON2(vtkgdcmPython gdcmWrapSOURCES ${vtkgdcmPython_la_SOURCES}) # The C++ files must be made into a C++ library - ADD_LIBRARY(vtkgdcmPython SHARED ${gdcmWrapSOURCES}) #MODULE on apple ? + ADD_LIBRARY(vtkgdcmPython MODULE ${gdcmWrapSOURCES}) #MODULE on apple ? + + # Python extension modules on Windows must have the extension ".pyd" + # instead of ".dll" as of Python 2.5. Older python versions do support + # this suffix. + IF(WIN32 AND NOT CYGWIN) + SET_TARGET_PROPERTIES(vtkgdcmPython PROPERTIES SUFFIX ".pyd") + ENDIF(WIN32 AND NOT CYGWIN) + # set the libraries to link against #SET_TARGET_PROPERTIES(${foobar} PROPERTIES PREFIX "") #GET_TARGET_PROPERTY(swig_gdcm_fullpath "${SWIG_MODULE_gdcm_REAL_NAME}" LOCATION) - TARGET_LINK_LIBRARIES (vtkgdcmPython - vtkgdcm - vtkCommonPython - vtkIOPython) + IF("${VTK_MAJOR_VERSION}" LESS 5) + TARGET_LINK_LIBRARIES (vtkgdcmPython + vtkgdcm + vtkCommonPython + vtkIOPython) + ELSE("${VTK_MAJOR_VERSION}" LESS 5) + TARGET_LINK_LIBRARIES (vtkgdcmPython + vtkgdcm + vtkCommonPythonD + vtkIOPythonD) + ENDIF("${VTK_MAJOR_VERSION}" LESS 5) INSTALL_TARGETS(/lib/gdcm/ vtkgdcmPython) ENDIF (GDCM_WRAP_PYTHON) @@ -125,26 +149,41 @@ IF(WIN32) "${GDCM_BINARY_DIR}\n" "${GDCM_BINARY_DIR}/bin/release\n" ) + FILE(WRITE ${GDCM_BINARY_DIR}/gdcmPython/InstallOnly/gdcmPython.pth + "${GDCM_SOURCE_DIR}\n" + "${GDCM_SOURCE_DIR}/bin\n" + ) ELSE(WIN32) FILE(WRITE ${GDCM_BINARY_DIR}/gdcmPython/gdcmPython.pth "${CMAKE_INSTALL_PREFIX}/lib/gdcm\n" ) + FILE(WRITE ${GDCM_BINARY_DIR}/gdcmPython/InstallOnly/gdcmPython.pth + "/usr/lib/gdcm\n" + ) ENDIF(WIN32) # Install a python path file in site-packages that tells # python where to find the gdcmPython module IF(UNIX) -FIND_PATH(PYTHON_DIR "site-packages" - /usr/lib/python2.4 - /usr/lib/python2.3 - /usr/lib/python2.2 - /usr/lib/python2.1 -) -STRING(REGEX REPLACE "/usr" "" PYTHON_DIR ${PYTHON_DIR}) - -INSTALL_FILES(${PYTHON_DIR}/site-packages "gdcmPython.pth") -INSTALL_FILES(/lib/gdcm/gdcmPython "\\.py$") -INSTALL_FILES(/lib/gdcm/gdcmPython FILES "gdcm.py") + FIND_PATH(PYTHON_DIR "site-packages" + /usr/lib/python2.5 + /usr/lib/python2.4 + /usr/lib/python2.3 + /usr/lib/python2.2 + /usr/lib/python2.1 + ) + STRING(REGEX REPLACE "/usr" "" PYTHON_DIR ${PYTHON_DIR}) + + INSTALL_FILES(${PYTHON_DIR}/site-packages FILES + "${GDCM_BINARY_DIR}/gdcmPython/InstallOnly/gdcmPython.pth" + ) + INSTALL_FILES(/lib/gdcm/gdcmPython FILES + "gdcm.py" + "__init__.py" + "gdcmVersion.py" + "core.py" + "vtk.py" + ) ENDIF(UNIX) #-----------------------------------------------------------------------------