FindSDL_image¶
查找 SDL_image 库,该库可将各种格式的图像加载为 SDL(Simple DirectMedia Layer)表面。
find_package(SDL_image [<version>] [...])
注意
此模块专门用于 SDL_image 版本 1。从版本 2.6 开始,SDL_image 在使用 CMake 构建时提供 CMake 包配置文件,应使用 find_package(SDL2_image) 进行查找。类似地,SDL_image 版本 3 可以使用 find_package(SDL3_image) 进行查找。这些较新版本提供了 导入目标,这些目标封装了使用要求。有关更多信息,请参阅官方 SDL 文档。
结果变量¶
此模块定义了以下变量
SDL_image_FOUND3.3 版本中新增。
布尔值,指示是否找到了(请求版本)SDL_image 库。
SDL_image_VERSION版本 4.2 中添加。
包含已找到的 SDL_image 版本的人类可读字符串。
SDL_IMAGE_INCLUDE_DIRS包含使用 SDL_image 库所需的头文件的目录。
SDL_IMAGE_LIBRARIES链接以使用 SDL_image 库所需的库。
提示¶
此模块接受以下变量
SDLDIR环境变量,可用于帮助定位安装在自定义位置的 SDL 库。它应指向配置、构建和安装 SDL 库时使用的安装目标:
./configure --prefix=$SDLDIR。
已弃用变量¶
以下变量提供用于向后兼容性
SDL_IMAGE_VERSION_STRING自 4.2 版本起已弃用: 使用
SDL_image_VERSION,其值相同。包含已找到的 SDL_image 版本的人类可读字符串。
SDL_IMAGE_FOUND自 4.2 版本起已弃用: 使用
SDL_image_FOUND,其值相同。SDLIMAGE_FOUND自 2.8.10 版本起已弃用: 使用
SDL_image_FOUND,其值相同。SDLIMAGE_INCLUDE_DIR自 2.8.10 版本起已弃用: 使用
SDL_IMAGE_INCLUDE_DIRS,其值相同。SDLIMAGE_LIBRARY自 2.8.10 版本起已弃用: 使用
SDL_IMAGE_LIBRARIES,其值相同。
示例¶
查找 SDL_image 库并创建一个导入的接口目标以将其链接到项目目标
find_package(SDL_image)
if(SDL_image_FOUND AND NOT TARGET SDL::SDL_image)
add_library(SDL::SDL_image INTERFACE IMPORTED)
set_target_properties(
SDL::SDL_image
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${SDL_IMAGE_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${SDL_IMAGE_LIBRARIES}"
)
endif()
target_link_libraries(project_target PRIVATE SDL::SDL_image)
在使用 SDL_image 版本 2 时,上游包直接提供 SDL2_image::SDL2_image 导入目标。它可以在不使用此模块的情况下在项目中进行使用。
find_package(SDL2_image)
target_link_libraries(project_target PRIVATE SDL2_image::SDL2_image)
同样,对于 SDL_image 版本 3
find_package(SDL3_image)
target_link_libraries(project_target PRIVATE SDL3_image::SDL3_image)
另请参阅¶
用于查找主 SDL 库的
FindSDL模块。