Hi again, I am still struggling with SWIG, and tested various things. Since UseSWIG.cmake seems quite similar from 2.4 to 2.6-1, here are some throughts I had while using it.
I don't know if my patches are relevant or not, I am probably using cmake the wrong way, but I'll give it a try ... Oh, and sorry for multi-posting, but I think it's better to keep different subjects on different threads ;) - throught First thing is the naming convention of generated wrappers. Wrappers (_wrap.cxx files) names are built from their interface file (.i) basename, then concatenated with the wrapped language. ie: wrapping to python, example.i will produce an examplePYTHON_wrap.cxx file. It's intended to wrap a single interface to different languages, great ! BUT, this file name doesn't match swig naming convention. wrapping an "example" module with an example.i interface should generate an example_wrap.cxx file, -and- an example.py script (proxy class declaration). For now, concatenating the target language to the file name results on a simple low level library generation (C-style static calls of the form module_name_method(self, args...)), but swig won't be able to produce the corresponding proxy script. Having the wrappers files named correctly results on a full generation after /usr/bin/swig call (C-style wrapper + proxy script). - patch I added a custom source file property "APPENDLANGUAGE", and modified UseSWIG.cmake this way : ******************** UseSWIG.cmake MACRO(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) ... GET_SOURCE_FILE_PROPERTY(swig_source_file_appendlanguage ${infile} APPENDLANGUAGE) ... IF(swig_source_file_appendlanguage) SET(swig_generated_file_fullname "${swig_generated_file_fullname}${SWIG_MODULE_${name}_LANGUAGE}_wrap") ELSE(swig_source_file_appendlanguage) SET(swig_generated_file_fullname "${swig_generated_file_fullname}_wrap") ENDIF(swig_source_file_appendlanguage) ... So that I only have to write some lines on my CMakeLists.txt files, ie : SET_SOURCE_FILES_PROPERTIES(example.i PROPERTIES APPENDLANGUAGE OFF) That should be convenient for people wrapping to a single language anyway. Tonio _____________________________________________________________________________ Envoyez avec Yahoo! Mail. Une boite mail plus intelligente http://mail.yahoo.fr _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake