查找SDL¶
找到 SDL 库
导入目标¶
在 3.19 版本加入.
该模块定义了以下 IMPORTED 目标:
SDL::SDLSDL 库(如果找到)
结果变量¶
该模块将在您的项目中设置以下变量:
SDL_INCLUDE_DIRS在哪里可以找到 SDL.h
SDL_LIBRARIES要链接的库的名称
SDL_FOUND如果为 false,则不要尝试链接到 SDL
SDL_VERSION如果找到,包含 SDL 版本的人类可读字符串
SDL_VERSION_MAJORSDL 主要版本
SDL_VERSION_MINORSDL 次要版本
SDL_VERSION_PATCHSDL补丁版本
在 3.19 版本加入: 添加了``SDL_INCLUDE_DIRS``、SDL_LIBRARIES 和``SDL_VERSION[_<PART>]`` 变量。
缓存变量¶
可以选择设置这些变量以帮助该模块找到正确的文件:
SDL_INCLUDE_DIR在哪里可以找到 SDL.h
SDL_LIBRARY要链接的库的名称
用于定位 SDL 的变量¶
该模块响应标志:
SDL_BUILDING_LIBRARY如果已定义,则不会链接任何 SDL_main,因为只有应用程序需要 main()。否则,假设您正在构建一个应用程序,并且此模块将尝试定位并设置正确的链接标志作为返回的 SDL_LIBRARY 变量的一部分。
过时的变量¶
自 3.19 版本弃用.
这些变量已过时并提供用于向后兼容:
SDL_VERSION_STRING如果找到,包含 SDL 版本的人类可读字符串。与 SDL_VERSION 相同
不要忘记为基于 OS X 框架的版本包含 SDLmain.h 和 SDLmain.m 项目。 (其他版本链接到 -lSDLmain,此模块将尝试代表您查找。)同样对于 OS X,此模块将代表您自动添加 -framework Cocoa。
附加说明:如果您在配置中看到一个空的 SDL_LIBRARY_TEMP 而没有 SDL_LIBRARY,这意味着 CMake 没有找到您的 SDL 库(SDL.dll、libsdl.so、SDL.framework 等)。将 SDL_LIBRARY_TEMP 设置为指向您的 SDL 库,然后重新配置。同样,如果您看到一个空的 SDLMAIN_LIBRARY,您应该适当地设置该值。这些值用于生成最终的 SDL_LIBRARY 变量,但是当这些值未设置时,不会创建 SDL_LIBRARY。
$SDLDIR 是一个环境变量,对应于构建 SDL 时使用的 ./configure --prefix=$SDLDIR。 l.e.galup 9-20-02
在 OSX 上,这将比其他版本更喜欢框架版本(如果找到)。人们将不得不手动更改 SDL_LIBRARY 的缓存值以覆盖此选择或设置 CMake 环境 CMAKE_INCLUDE_PATH 以修改搜索路径。
请注意,标头路径已从 SDL/SDL.h 更改为仅 SDL.h 这需要更改,因为“正确的”SDL 约定是#include "SDL.h",而不是 <SDL/SDL.h>。这样做是出于可移植性的原因,因为并非所有系统都将内容放在 SDL/(请参阅 FreeBSD)中。