FindSDL¶
定位 SDL 库
导入的目标¶
3.19 版本中已添加。
此模块定义以下 IMPORTED
目标
SDL::SDL
SDL 库(如果找到)
结果变量¶
此模块会在项目中设置以下变量
SDL_INCLUDE_DIRS
SDL.h 的位置
SDL_LIBRARIES
需要链接到的库的名称
SDL_FOUND
如果为 false,则不尝试链接到 SDL
SDL_VERSION
如果找到,则包含 SDL 版本的人类可读字符串
SDL_VERSION_MAJOR
SDL 主版本
SDL_VERSION_MINOR
SDL 次要版本
SDL_VERSION_PATCH
SDL 修订版本
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)。