W3cubDocs

/CMake 3.19

FindSDL

Locate the SDL library

Imported targets

This module defines the following IMPORTED target:

SDL::SDL

The SDL library, if found

Result variables

This module will set the following variables in your project:

SDL_INCLUDE_DIRS

where to find SDL.h

SDL_LIBRARIES

the name of the library to link against

SDL_FOUND

if false, do not try to link to SDL

SDL_VERSION

the human-readable string containing the version of SDL if found

SDL_VERSION_MAJOR

SDL major version

SDL_VERSION_MINOR

SDL minor version

SDL_VERSION_PATCH

SDL patch version

Cache variables

These variables may optionally be set to help this module find the correct files:

SDL_INCLUDE_DIR

where to find SDL.h

SDL_LIBRARY

the name of the library to link against

Variables for locating SDL

This module responds to the flag:

SDL_BUILDING_LIBRARY

If this is defined, then no SDL_main will be linked in because only applications need main(). Otherwise, it is assumed you are building an application and this module will attempt to locate and set the proper link flags as part of the returned SDL_LIBRARY variable.

Obsolete variables

These variables are obsolete and provided for backwards compatibility:

SDL_VERSION_STRING

the human-readable string containing the version of SDL if found. Identical to SDL_VERSION

Don’t forget to include SDLmain.h and SDLmain.m your project for the OS X framework based version. (Other versions link to -lSDLmain which this module will try to find on your behalf.) Also for OS X, this module will automatically add the -framework Cocoa on your behalf.

Additional Note: If you see an empty SDL_LIBRARY_TEMP in your configuration and no SDL_LIBRARY, it means CMake did not find your SDL library (SDL.dll, libsdl.so, SDL.framework, etc). Set SDL_LIBRARY_TEMP to point to your SDL library, and configure again. Similarly, if you see an empty SDLMAIN_LIBRARY, you should set this value as appropriate. These values are used to generate the final SDL_LIBRARY variable, but when these values are unset, SDL_LIBRARY does not get created.

$SDLDIR is an environment variable that would correspond to the ./configure –prefix=$SDLDIR used in building SDL. l.e.galup 9-20-02

On OSX, this will prefer the Framework version (if found) over others. People will have to manually change the cache values of SDL_LIBRARY to override this selection or set the CMake environment CMAKE_INCLUDE_PATH to modify the search paths.

Note that the header path has changed from SDL/SDL.h to just SDL.h This needed to change because “proper” SDL convention is #include “SDL.h”, not <SDL/SDL.h>. This is done for portability reasons because not all systems place things in SDL/ (see FreeBSD).

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/module/FindSDL.html