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_DIRSSDL_LIBRARIESSDL_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 相同

不要忘記在您的專案中包含 SDLmain.h 和 SDLmain.m,以用於基於 OS X 框架的版本。(其他版本連結到 -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)。