Commit: 9a10b208bacd4258e528532d400b25aeb33591d9 Author: Sybren A. Stüvel Date: Mon Feb 16 08:22:26 2015 +0100 Branches: master https://developer.blender.org/rB9a10b208bacd4258e528532d400b25aeb33591d9
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 =================================================================== M CMakeLists.txt A build_files/cmake/Modules/FindSDL2.cmake =================================================================== diff --git a/CMakeLists.txt b/CMakeLists.txt index 29f8c81..561d7f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -838,17 +838,21 @@ if(UNIX AND NOT APPLE) if(WITH_SDL) if(WITH_SDL_DYNLOAD) - set(SDLMAIN_LIBRARY) set(SDL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/sdlew/include/SDL2") set(SDL_LIBRARY) - set(SDL_LIBRARY_TEMP) else() - find_package_wrapper(SDL) + find_package_wrapper(SDL2) + if(SDL2_FOUND) + # Use same names for both versions of SDL until we move to 2.x. + set(SDL_INCLUDE_DIR "${SDL2_INCLUDE_DIR}") + set(SDL_LIBRARY "${SDL2_LIBRARY}") + set(SDL_FOUND "${SDL2_FOUND}") + else() + find_package_wrapper(SDL) + endif() mark_as_advanced( - SDLMAIN_LIBRARY SDL_INCLUDE_DIR SDL_LIBRARY - SDL_LIBRARY_TEMP ) # unset(SDLMAIN_LIBRARY CACHE) if(NOT SDL_FOUND) diff --git a/build_files/cmake/Modules/FindSDL2.cmake b/build_files/cmake/Modules/FindSDL2.cmake new file mode 100644 index 0000000..2a835cf --- /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 +) _______________________________________________ Bf-blender-cvs mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-blender-cvs
