[Cmake-commits] [cmake-commits] malaterre committed UseSWIG.cmake 1.18 1.19

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Oct 30 11:07:13 EDT 2009


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv6922

Modified Files:
	UseSWIG.cmake 
Log Message:
FIX: BUG: 0007915  Integrate portion of the patch. Also add .pyd support for python module. 


Index: UseSWIG.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/UseSWIG.cmake,v
retrieving revision 1.18
retrieving revision 1.19
diff -C 2 -d -r1.18 -r1.19
*** UseSWIG.cmake	28 Sep 2009 15:46:51 -0000	1.18
--- UseSWIG.cmake	30 Oct 2009 15:07:10 -0000	1.19
***************
*** 49,52 ****
--- 49,55 ----
    SET(SWIG_MODULE_${name}_REAL_NAME "${name}")
    IF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPYTHONx$")
+     # when swig is used without the -interface it will produce in the module.py
+     # a 'import _modulename' statement, which implies having a corresponding 
+     # _modulename.so (*NIX), _modulename.pyd (Win32).
      SET(SWIG_MODULE_${name}_REAL_NAME "_${name}")
    ENDIF("x${SWIG_MODULE_${name}_LANGUAGE}x" MATCHES "^xPYTHONx$")
***************
*** 118,121 ****
--- 121,126 ----
    IF(CMAKE_SWIG_OUTDIR)
      SET(swig_outdir ${CMAKE_SWIG_OUTDIR})
+     # it may not exist, so create it:
+     file(MAKE_DIRECTORY ${CMAKE_SWIG_OUTDIR})
    ELSE(CMAKE_SWIG_OUTDIR)
      SET(swig_outdir ${CMAKE_CURRENT_BINARY_DIR})
***************
*** 204,209 ****
      ${swig_generated_sources}
      ${swig_other_sources})
!   SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_REAL_NAME}
!     PROPERTIES PREFIX "")
  ENDMACRO(SWIG_ADD_MODULE)
  
--- 209,239 ----
      ${swig_generated_sources}
      ${swig_other_sources})
!   STRING(TOLOWER "${language}" swig_lowercase_language)
!   IF ("${swig_lowercase_language}" STREQUAL "java")
!     IF (APPLE)
!         # In java you want:
!         #      System.loadLibrary("LIBRARY");
!         # then JNI will look for a library whose name is platform dependent, namely
!         #   MacOS  : libLIBRARY.jnilib
!         #   Windows: LIBRARY.dll
!         #   Linux  : libLIBRARY.so
!         SET_TARGET_PROPERTIES (${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".jnilib")
!       ENDIF (APPLE)
!   ENDIF ("${swig_lowercase_language}" STREQUAL "java")
!   IF ("${swig_lowercase_language}" STREQUAL "python")
!     # this is only needed for the python case where a _modulename.so is generated
!     SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
!     # 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.
!     # http://docs.python.org/whatsnew/ports.html#SECTION0001510000000000000000
!     # <quote>
!     # Windows: .dll is no longer supported as a filename extension for extension modules.
!     # .pyd is now the only filename extension that will be searched for.
!     # </quote>
!     IF(WIN32 AND NOT CYGWIN)
!       SET_TARGET_PROPERTIES(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".pyd")
!     ENDIF(WIN32 AND NOT CYGWIN)
!   ENDIF ("${swig_lowercase_language}" STREQUAL "python")
  ENDMACRO(SWIG_ADD_MODULE)
  



More information about the Cmake-commits mailing list