On 12/9/06, Axel Roebel <[EMAIL PROTECTED]> wrote:
Tristan Carel wrote: > Hi Swig lovers, > > Axel had the great idea to use the -swiglib option in order to improve > the module's efficiency to properly fill the prerequesites variables. > I guess it is the perfect example of using a tool to perform its > `configure' part. > > On the other hand, it's hard to maintain dependencies of the wrapper > generated by swig because the developper has to manually update the > CMakeLists.txt each time a change relative to the file inclusions in > the main swig file is performed. But Swig provides a couple of > options: -M, -MM, -MF, ... > which have the same behavior than gcc's: compute the dependencies for > us, lazy developpers! > > So I submitted a new macro in the `UseSWIG.cmake' few days ago: > http://www.cmake.org/Bug/bug.php?op=show&bugid=4147&pos=7 > > # SWIG_GET_WRAPPER_DEPENDENCIES(swigFile genWrapper language > DEST_VARIABLE) # - Put dependencies of the wrapper genWrapper generated > by swig from # swigFile in DEST_VARIABLE > > A full description (including behavior, use cases) is available on the > bug tracker. > > So as Axel wrote: > "Any comments or volunteers to try?" Hi Tristan, do I get the idea right that you want that the wrapper will be recreated whenever any of its dependencies changed? That would be really nice! So I tried the usecase 1 (because usecase 2 is too involved for me ;-) like SWIG_ADD_MODULE(eaSDIF perl ${INTERFACE_SRC} ) SWIG_LINK_LIBRARIES(eaSDIF ${PERL_LIBRARIES} Easdif) however it seems I don't get any dependencies besides the main interface file ${INTERFACE_SRC}. I do get them if I add DEPENDS ${SWIG_MODULE_${name}_EXTRA_DEPS}
Yes, It's exactly what I meant in my previous post when I wrote: "[...] it's hard to maintain dependencies of the wrapper generated by swig because the developper has to manually update the CMakeLists.txt [...]" I asked to CMake maintainers to add the SWIG_MODULE_${name}_EXTRA_DEPS variable few months ago, but I didn't know that it could be done automatically with the `swig -M' option. I submitted a patch for `UseSWIG.cmake' in the bug tracker. You say that the dependencies are not computed by default by the `SWIG_ADD_SOURCE_TO_MODULE' macro. You probably patched your `UseSWIG.cmake' before but ... did you?
to the ADD_CUSTOM_COMMANDS in SWIG_ADD_SOURCE_TO_MODULE. The added dependencies are pretty cool then. So I suppose you just forgot to actually use them?
I used them but now I'm fed up to update it each time I modify the inclusions of the swig file.
If you add the DEPENDS line you probably need to check for the case that ${SWIG_MODULE_${name}_EXTRA_DEPS} is empty. Otherwise DEPENDS will probably complain if the argument is an empty list. I have this error all the time for COMPILE_FLAGS, but I am not sure whether DEPENDS behaves similarly.
I've already used the `SWIG_ADD_SOURCE_TO_MODULE' without using the `${SWIG_MODULE_${name}_EXTRA_DEPS' feature so I guess it properly works even if the variable is empty. CU -- Tristan Carel Music with dinner is an insult both to the cook and the violinist. _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake