FindImageMagick

查找 ImageMagick,一个用于显示、转换和处理位图图像的软件套件。

find_package(ImageMagick [<version>] [COMPONENTS <components>...] [...])

版本 3.9 中新增: 支持 ImageMagick 7。

组件

此模块支持组件,并搜索一组 ImageMagick 工具。典型的组件包括 ImageMagick 可执行文件的名称,但不限于以下内容(ImageMagick 的未来版本可能提供此处未列出的其他组件)。

  • animate

  • compare

  • composite

  • conjure

  • convert

  • display

  • identify

  • import

  • mogrify

  • montage

  • stream

还有以下 ImageMagick API 的组件:

Magick++

查找 ImageMagick C++ API。

MagickWand

查找 ImageMagick MagickWand C API。

MagickCore

查找 ImageMagick MagickCore 低级 C API。

可以使用 find_package() 命令指定组件。

find_package(ImageMagick [COMPONENTS <components>...])

如果未指定组件,该模块仅搜索 ImageMagick 可执行文件目录。

导入的目标

此模块提供以下 导入目标

ImageMagick::Magick++

3.26 版新增。

封装 ImageMagick C++ API 使用要求的目标,如果找到 ImageMagick C++ 则可用。

ImageMagick::MagickWand

3.26 版新增。

封装 ImageMagick MagickWand C API 使用要求的目标,如果找到 MagickWand 则可用。

ImageMagick::MagickCore

3.26 版新增。

封装 ImageMagick MagickCore 低级 C API 使用要求的目标,如果找到 MagickCore 则可用。

结果变量

此模块定义了以下变量

ImageMagick_FOUND

布尔值,指示是否找到了(请求版本的)ImageMagick 及其所有请求的组件。

ImageMagick_VERSION

版本 4.2 中添加。

找到的 ImageMagick 的版本,格式为 <major>.<minor>.<patch>-<addendum>(例如 6.9.12-98,其中 98 是附加发布号)。

注意

版本检测仅适用于 ImageMagick 6 及更高版本。

ImageMagick_INCLUDE_DIRS

使用 ImageMagick 所需的所有包含目录。

ImageMagick_LIBRARIES

链接使用 ImageMagick 所需的库。

ImageMagick_COMPILE_OPTIONS

3.26 版新增。

所有库的编译选项。

ImageMagick_<component>_FOUND

布尔值,指示是否找到 ImageMagick <component>

ImageMagick_<component>_EXECUTABLE

指向 <component> 可执行文件的完整路径。

ImageMagick_<component>_INCLUDE_DIRS

包含使用 ImageMagick <component> 所需头文件的目录。

ImageMagick_<component>_COMPILE_OPTIONS

3.26 版新增。

ImageMagick <component> 的编译选项。

ImageMagick_<component>_LIBRARIES

在版本 3.31 中添加。

链接使用 ImageMagick <component> 所需的库。

缓存变量

以下缓存变量也可以设置

ImageMagick_EXECUTABLE_DIR

包含 ImageMagick 可执行文件的目录的完整路径。

已弃用变量

以下变量提供用于向后兼容性

ImageMagick_VERSION_STRING

版本 4.2 中已弃用: 使用 ImageMagick_VERSION,其值相同。

找到的 ImageMagick 版本。

示例

查找 ImageMagick 及其组件 Magick++ 并将其链接到项目目标。

find_package(ImageMagick COMPONENTS Magick++)
target_link_libraries(example PRIVATE ImageMagick::Magick++)