FindSWIG

查找简化包装器和接口生成器 (SWIG) 可执行文件。

此模块查找已安装的 SWIG 并确定其版本。

3.18 版本新增: 如果向 find_package() 命令传递了 COMPONENTSOPTIONAL_COMPONENTS 参数,它还将确定受支持的目标语言。

3.19 版本新增: 请求版本时,可以将其指定为一个简单值或一个范围。有关版本范围用法和功能的详细说明,请参阅 find_package() 命令。

此模块定义以下变量

SWIG_FOUND

系统上是否找到了 SWIG 和任何必需的组件。

SWIG_EXECUTABLE

指向 SWIG 可执行文件的路径。

SWIG_DIR

指向已安装的 SWIG Lib 目录的路径(swig -swiglib 的结果)。

SWIG_VERSION

SWIG 可执行文件版本(swig -version 的结果)。

SWIG_<lang>_FOUND

如果请求了 COMPONENTSOPTIONAL_COMPONENTS,则每个可用的目标语言 <lang>(小写)都将设置为 TRUE。

传递给 find_package 的所有 COMPONENTS 应成为 swig_add_library 的 LANGUAGE 参数提供的受支持的目标语言的名称,如 pythonperl5。语言名称必须是小写。

所有信息都从 SWIG_EXECUTABLE 中收集,因此可以通过设置 SWIG_EXECUTABLE 来从命令行更改要查找的版本。

使用示例,要求 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()