X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=gdcmPython%2FCMakeLists.txt;h=932c9af282d5465fcbc76fa585540dc66c400735;hb=aabd40fdab563ece466ce5e3830798dd73ee3941;hp=5c0f1ce6012cd130ffe275b525701e2bdf31054c;hpb=440f46249796005c4d19670071349447dcdde2ea;p=gdcm.git diff --git a/gdcmPython/CMakeLists.txt b/gdcmPython/CMakeLists.txt index 5c0f1ce6..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}/ ) @@ -13,7 +14,8 @@ INCLUDE_DIRECTORIES( # CMake 2.0 will fully support Swig wrapping so split based on cmake version: # We need to pass that to swig to be sure all modules are generated in the proper dir -SET(CMAKE_SWIG_FLAGS "-outdir ${GDCM_BINARY_DIR}/gdcmPython") +SET(CMAKE_SWIG_FLAGS "-outdir \"${GDCM_BINARY_DIR}/gdcmPython\"") +#SET(CMAKE_SWIG_OUTDIR "${GDCM_BINARY_DIR}/gdcmPython") # Looks like a bug to me in cmake 2.0.x: SEPARATE_ARGUMENTS(CMAKE_SWIG_FLAGS) @@ -24,15 +26,23 @@ ENDIF(SWIG_FOUND) 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}) # Get rid of -Wall / -W / -pedantic if exist SET(CMAKE_CXX_FLAGS "") # I guess I need to put them back on this file: -SET_SOURCE_FILES_PROPERTIES( - ${swig_generated_file_fullname} - PROPERTIES COMPILE_FLAGS "") +#SET_SOURCE_FILES_PROPERTIES( +# ${swig_generated_file_fullname} +# PROPERTIES COMPILE_FLAGS "") INSTALL_TARGETS(/lib/gdcm/ _gdcm) @@ -58,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) @@ -121,32 +149,42 @@ 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) -FIND_PATH(PYTHON_INSTALL "site-packages" - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.4\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.3\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.2\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.1\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.0\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\1.6\\InstallPath] - [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\1.5\\InstallPath] - /usr/lib/python2.4 - /usr/lib/python2.3 - /usr/lib/python2.2 - /usr/lib/python2.1 - /usr/lib/python2.0 - /usr/lib/python1.6 - /usr/lib/python1.5 -) -STRING(REGEX REPLACE "/usr(.*)/config.*" "\\1" PYTHON_INSTALL ${PYTHON_LIBRARY}) -INSTALL_FILES(${PYTHON_INSTALL}/site-packages "\\.pth$") -INSTALL_FILES(/lib/gdcm/gdcmPython "\\.py$") -INSTALL_FILES(/lib/gdcm/gdcmPython FILES "gdcm.py") +# 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.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) #----------------------------------------------------------------------------- # Add test from demo subdir: