X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=gdcmPython%2FCMakeLists.txt;h=a5a26ed797d5aea17fb315eb4c6e42dc2cf062f2;hb=98ab91206c2a0e603d6d9b11951860e5c78e315a;hp=faeedec531da338b04cf3f08d23994f4d8112dd7;hpb=ad06106b0ba563d9cc4405ae6440e8ee0ead51c3;p=gdcm.git diff --git a/gdcmPython/CMakeLists.txt b/gdcmPython/CMakeLists.txt index faeedec5..a5a26ed7 100644 --- a/gdcmPython/CMakeLists.txt +++ b/gdcmPython/CMakeLists.txt @@ -18,14 +18,29 @@ IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9) INCLUDE(${SWIG_USE_FILE}) #INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) - #SET(CMAKE_SWIG_FLAGS "") + #SET_SOURCE_FILES_PROPERTIES(gdcm.i PROPERTIES PYTHON ON) SET_SOURCE_FILES_PROPERTIES(gdcm.i PROPERTIES CPLUSPLUS ON) SET_SOURCE_FILES_PROPERTIES(gdcm.i PROPERTIES SWIG_FLAGS "-includeall") - SWIG_ADD_MODULE(gdcm python gdcm.i gdcm_wrap.cxx) - SWIG_LINK_LIBRARIES(gdcm ${PYTHON_LIBRARIES}) - TARGET_LINK_LIBRARIES(_gdcm gdcm) + SWIG_ADD_MODULE(gdcm python gdcm.i) #gdcm_wrap.cxx + SWIG_LINK_LIBRARIES(gdcm gdcm ${PYTHON_LIBRARIES}) + + #SWIG_GET_EXTRA_OUTPUT_FILES(python foobar "/usr/" "gdcm" ) + #MESSAGE(FATAL_ERROR ${swig_generated_file_fullname}) + #MESSAGE(FATAL_ERROR ${swig_source_file_fullname}) + + # Swig creates a gdcm.py file put it in the right place, if only cmake + # was able to do stuff properly ... + ADD_CUSTOM_TARGET( CMAKE_S____ ALL) + ADD_CUSTOM_COMMAND( + TARGET CMAKE_S____ + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy + ${GDCM_BINARY_DIR}/gdcmPython/gdcm.py + ${GDCM_BINARY_DIR}/bin/gdcm.py + ) ELSE(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9) @@ -72,7 +87,7 @@ ELSE(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.9) # Then create the gdcm.py = gdcmVersion.py + gdcm.py (swig) file: FILE(WRITE ${GDCM_BINARY_DIR}/bin/gdcmVersion.py "import os\n" - "gdcmVERSION=\"${GDCM_VERSION_FULL}\"\n" + "gdcmVERSION=\"${GDCM_VERSION}\"\n" "GDCM_DATA_PATH=\"${GDCM_DATA_ROOT}\"\n\n" ${SWIG_GDCM_PY} ) @@ -161,8 +176,10 @@ IF(GDCM_VTK) # The C++ files must be made into a C++ library ADD_LIBRARY(vtkgdcmPython SHARED ${gdcmWrapSOURCES}) #MODULE on apple ? # 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 - pygdcm vtkgdcm vtkCommonPython vtkIOPython) @@ -174,7 +191,7 @@ IF(GDCM_VTK) GET_FILENAME_COMPONENT(VTKPATH ${VTK_DIR}/../../ ABSOLUTE) CONFIGURE_FILE( ${GDCM_SOURCE_DIR}/gdcmPython/setup.py.in - ${GDCM_BINARY_DIR}/gdcmPython/setup.py + ${GDCM_BINARY_DIR}/setup.py ) ENDIF(GDCM_VTK) @@ -185,6 +202,25 @@ ENDIF(GDCM_VTK) # in /usr/lib/pythonx.x/site-package and not a a std /usr/lib # Thus generate a setup.py file using distutils +# Create a gdcm.pth file: + +FILE(WRITE ${GDCM_BINARY_DIR}/gdcmPython/gdcm.pth + "gdcmPython\n" + ) + +FILE(WRITE ${GDCM_BINARY_DIR}/gdcmPython/__init__.py + "import gdcm\n" + ) + +IF(GDCM_VTK) + FILE(APPEND ${GDCM_BINARY_DIR}/gdcmPython/__init__.py + "import os\n" + "if os.name == 'posix':\n" + " from libvtkgdcmPython import *\n" + "else:\n" + " from vtkgdcmPython import *\n" + ) +ENDIF(GDCM_VTK) #----------------------------------------------------------------------------- # Add test from demo subdir: