FindGSL

版本 3.2 中新增。

查找原生的 GNU Scientific Library (GSL) 的包含文件和库。

find_package(GSL [<version>] [...])

GNU Scientific Library (GSL) 是一个面向 C 和 C++ 程序员的数值库。它是 GNU 通用公共许可证下的自由软件。

导入的目标

此模块提供以下 导入目标

GSL::gsl

封装了主要的 GSL 库及其所有使用要求的目标。仅在找到 GSL 时可用。

GSL::gslcblas

封装了 GSL 使用的 CBLAS 支持库的使用要求的目标。如果找到 GSL,则此目标可用。它也链接到 GSL::gsl 目标,但为了更精细的控制,单独提供。

结果变量

此模块定义了以下变量

GSL_FOUND

一个布尔值,指示本地系统是否找到了 (所请求版本的) GSL。

GSL_VERSION

已发现的 GSL 安装的版本。

GSL_INCLUDE_DIRS

包含 GSL 头文件的目录。

GSL_LIBRARIES

GSL 库。

缓存变量

此模块可能会根据平台和发现的 GSL 安装类型设置以下变量。这些变量可以被可选地设置,以帮助此模块找到正确的文件。

GSL_CBLAS_LIBRARY

GSL CBLAS 库的位置。

GSL_CBLAS_LIBRARY_DEBUG

调试版 GSL CBLAS 库的位置 (如果存在)。

GSL_CONFIG_EXECUTABLE

gsl-config 脚本的位置 (如果存在)。

GSL_LIBRARY

GSL 库的位置。

GSL_LIBRARY_DEBUG

调试版 GSL 库的位置 (如果存在)。

提示

此模块接受以下变量

GSL_ROOT_DIR

将此变量设置为包含 GSL 安装的目录。

如果未设置此变量,则此模块将使用 pkg-config 和默认路径来查找 GSL。如果提供了此变量,则此模块期望在 ${GSL_ROOT_DIR}/lib 找到库,并在 ${GSL_ROOT_DIR}/include/gsl 找到 GSL 头文件。

库目录可选择性地提供 Release 和 Debug 文件夹。如果可用,名称为 gsldgslblasdcblasd 的库将被识别为调试库。对于类 Unix 系统,此模块还将使用 gsl-config (如果找到) 来辅助 GSL 的发现。

示例

查找 GSL 并将其链接到项目目标

find_package(GSL)
target_link_libraries(project_target PRIVATE GSL::gsl)