diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2015-02-16 10:22:26 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2015-02-16 11:27:50 +0300 |
commit | 9a10b208bacd4258e528532d400b25aeb33591d9 (patch) | |
tree | 0f6d65d397404b2fd0a20d14f56556a7b7c49ac0 /build_files/cmake | |
parent | 58652301dee685f67edf03c2bfcfbafe15a7cb6e (diff) |
Ensure CMake finds SDL 2.0
CMake 2.8 doesn't search /usr/include/SDL2, which is the include directory
for SDL 2.x on Ubuntu Linux (and possibly others). This results in SDL 1.2
headers being found when WITH_SDL_DYNLOAD=OFF, and our shipped SDL 2.0
headers when WITH_SDL_DYNLOAD=ON. This patch ensures that in both
cases the correct SDL headers are used.
Reviewers: sergey, campbellbarton
Projects: #bf_blender
Differential Revision: https://developer.blender.org/D1112
Diffstat (limited to 'build_files/cmake')
-rw-r--r-- | build_files/cmake/Modules/FindSDL2.cmake | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/build_files/cmake/Modules/FindSDL2.cmake b/build_files/cmake/Modules/FindSDL2.cmake new file mode 100644 index 00000000000..2a835cf94fa --- /dev/null +++ b/build_files/cmake/Modules/FindSDL2.cmake @@ -0,0 +1,72 @@ +# - Find SDL library +# Find the native SDL includes and library +# This module defines +# SDL2_INCLUDE_DIRS, where to find SDL.h, Set when SDL2_INCLUDE_DIR is found. +# SDL2_LIBRARIES, libraries to link against to use SDL. +# SDL2_ROOT_DIR, The base directory to search for SDL. +# This can also be an environment variable. +# SDL2_FOUND, If false, do not try to use SDL. +# +# also defined, but not for general use are +# SDL2_LIBRARY, where to find the SDL library. + +#============================================================================= +# Copyright 2015 Blender Foundation. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +# If SDL2_ROOT_DIR was defined in the environment, use it. +IF(NOT SDL2_ROOT_DIR AND NOT $ENV{SDL2_ROOT_DIR} STREQUAL "") + SET(SDL2_ROOT_DIR $ENV{SDL2_ROOT_DIR}) +ENDIF() + +SET(_sdl2_SEARCH_DIRS + ${SDL2_ROOT_DIR} + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave +) + +FIND_PATH(SDL2_INCLUDE_DIR + NAMES + SDL.h + HINTS + ${_sdl2_SEARCH_DIRS} + PATH_SUFFIXES + include/SDL2 include +) + +FIND_LIBRARY(SDL2_LIBRARY + NAMES + SDL2 + HINTS + ${_sdl2_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib + ) + +# handle the QUIETLY and REQUIRED arguments and set SDL2_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 DEFAULT_MSG + SDL2_LIBRARY SDL2_INCLUDE_DIR) + +IF(SDL2_FOUND) + SET(SDL2_LIBRARIES ${SDL2_LIBRARY}) + SET(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) +ENDIF(SDL2_FOUND) + +MARK_AS_ADVANCED( + SDL2_INCLUDE_DIR + SDL2_LIBRARY +) |