FindSWIG¶
查找已安装的 Simplified Wrapper and Interface Generator (SWIG) 可执行文件并确定其版本
find_package(SWIG [<version>] [COMPONENTS <langs>...] [...])
版本 3.19 中新增: 支持在调用 find_package() 命令时指定版本范围。当请求版本时,它可以像以前一样指定为单个值,现在也可以使用版本范围。有关版本范围用法和功能的详细描述,请参阅 find_package() 命令。
组件¶
在 3.18 版本中新增。
此模块支持可选组件来指定目标语言。
如果将 COMPONENTS 或 OPTIONAL_COMPONENTS 参数传递给 find_package() 命令,它还将确定支持的目标语言。
find_package(SWIG [COMPONENTS <langs>...] [OPTIONAL_COMPONENTS <langs>...])
传递给 find_package() 的任何 COMPONENTS 都应该是传递给 swig_add_library() 的 LANGUAGE 参数所提供的支持的目标语言的名称,例如 python 或 perl5。语言名称必须是小写。
结果变量¶
此模块定义了以下变量
SWIG_FOUND一个布尔值,指示是否在系统上找到 (请求版本的) SWIG 和任何必需的组件。
SWIG_VERSIONSWIG 可执行文件的版本 (由
swig -version命令的结果)。SWIG_<lang>_FOUND如果请求了
COMPONENTS或OPTIONAL_COMPONENTS,则每个可用的目标语言<lang>(小写) 都将设置为 TRUE。SWIG_DIR已安装 SWIG
Lib目录的路径 (由swig -swiglib命令的结果)。
缓存变量¶
以下缓存变量也可以设置
SWIG_EXECUTABLESWIG 可执行文件的路径。
此可执行文件用于检索本模块的所有信息。它也可以手动设置,以从命令行更改要查找的版本。
示例¶
示例用法:需要 SWIG 4.0 或更高版本以及 Python 语言支持,并选择支持 Fortran 支持
find_package(SWIG 4.0 COMPONENTS python OPTIONAL_COMPONENTS fortran)
if(SWIG_FOUND)
message("SWIG found: ${SWIG_EXECUTABLE}")
if(NOT SWIG_fortran_FOUND)
message(WARNING "SWIG Fortran bindings cannot be generated")
endif()
endif()
此模块通常与 UseSWIG 模块结合使用
find_package(SWIG COMPONENTS python)
if(SWIG_FOUND)
include(UseSWIG)
swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
endif()
另请参阅¶
UseSWIG 模块用于在 CMake 中使用 SWIG。