FindSDL_image¶
查找 SDL_image 库,该库将各种格式的图像加载为 SDL (Simple DirectMedia Layer) 表面。
注意
此模块专门用于 SDL_image 1 版。从 2.6 版开始,SDL_image 在使用 CMake 构建时提供 CMake 包配置,应使用 find_package(SDL2_image)
查找。同样,SDL_image 3 版可以使用 find_package(SDL3_image)
查找。这些较新版本提供了封装使用要求的导入目标。有关更多信息,请参阅官方 SDL 文档。
结果变量¶
此模块定义了以下变量
SDL_image_FOUND
布尔值,指示是否找到(请求版本的)SDL_image 库。为了向后兼容,
SDL_IMAGE_FOUND
变量也设置为相同的值。SDL_IMAGE_VERSION_STRING
包含找到的 SDL_image 版本的易读字符串。
SDL_IMAGE_INCLUDE_DIRS
包含使用 SDL_image 库所需的头文件的目录。
SDL_IMAGE_LIBRARIES
使用 SDL_image 库所需链接的库。
提示¶
此模块接受以下变量
SDLDIR
可以设置的环境变量,用于帮助在自定义位置找到已安装的 SDL 库。它应该指向配置、构建和安装 SDL 库时使用的安装目标:
./configure --prefix=$SDLDIR
。
已弃用变量¶
为了向后兼容,以下变量也已设置
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)
另请参阅¶
FindSDL
模块用于查找主 SDL 库。