如何让swig_add_library(cmake)处理提供的文件

时间:2018-02-15 11:25:55

标签: cmake swig

使用cmake"插件"提供的swig_add_library时UseSWIG.cmake如下

swig_add_library (mylib LANGUAGE tcl SOURCES foo.ii)

foo.ii被默默忽略。如果我将foo.ii重命名为foo.i然后重命名

swig_add_library (mylib LANGUAGE tcl SOURCES foo.i)

foo.i按预期处理。 我如何编写我的CMakeLists.txt,以便swig_add_library处理作为其调用参数提供的SOURCES。

1 个答案:

答案 0 :(得分:1)

我认为,swig文件的扩展名.i在UseSwig.cmake宏中是硬编码的(即必需的)。

macro(SWIG_ADD_LIBRARY name)
... 
foreach(it ${_SAM_SOURCES})
    if(${it} MATCHES "\\.i$")
      set(swig_dot_i_sources ${swig_dot_i_sources} "${it}")
    ...
endforeach()
...
foreach(it ${swig_dot_i_sources})
  SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source ${it})
  set(swig_generated_sources ${swig_generated_sources} "${swig_generated_source}")
  list(APPEND swig_generated_targets "${swig_gen_target}")
endforeach()

src:https://gitlab.kitware.com/cmake/cmake/blob/master/Modules/UseSWIG.cmake#L306

相关问题