[cmake-developers] [CMake 0014859]: UseSWIG rebuilds source even when the the dependencies have not changed (again)

Mantis Bug Tracker mantis at public.kitware.com
Tue Apr 1 17:53:11 EDT 2014


The following issue has been SUBMITTED. 
====================================================================== 
http://www.cmake.org/Bug/view.php?id=14859 
====================================================================== 
Reported By:                Felix Schwitzer
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   14859
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2014-04-01 17:53 EDT
Last Modified:              2014-04-01 17:53 EDT
====================================================================== 
Summary:                    UseSWIG rebuilds source even when the the
dependencies have not changed (again)
Description: 
This reopens 0010080, as I'm not the original reporter and therefore can't
reopen the bug.

The fix provided in
http://cmake.org/gitweb?p=stage/cmake.git;a=commitdiff;h=63ebb1
does not solve the problem of recompiling the python-module again and again, if
the module name is passed via

  set_source_files_properties(
    ${_interfacefile} PROPERTIES
    CPLUSPLUS ON
    SWIG_FLAGS "-DMODULENAME=${_modulename}")

The original, reverted, change
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f0111deb
worked for me.

Steps to Reproduce: 
See attached example

Additional Information: 
I build the bindings almost always for different script languages, iterating
over the languages and passing a modified modulname appropriate to the
selected language in the way mentioned above. A cmake fragment would look
like

set(_iffile "ltt.i")
set(_languages "ruby" "python")
foreach(_lang ${_languages})
  if(_lang STREQUAL "ruby")
    set(_modulename "rltt")
    set(_libs ${RUBY_LIBRARY})
  elseif(_lang STREQUAL "python")
    set(_modulename "pyltt")
    set(_libs ${PYTHON_LIBRARY})
  endif()
  set_source_files_properties(
    ${_iffile} PROPERTIES
    CPLUSPLUS ON
    SWIG_FLAGS "-DMODULENAME=${_modulename}")
  swig_add_module(${_modulename} ${_lang} ${_iffile})
  swig_link_libraries(${_modulename} ltt ${_libs})
endforeach()

====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2014-04-01 17:53 Felix SchwitzerNew Issue                                    
2014-04-01 17:53 Felix SchwitzerFile Added: ltt.zip                          
======================================================================



More information about the cmake-developers mailing list