[Bf-blender-cvs] [9a10b20] master: Ensure CMake finds SDL 2.0

Sybren A. Stüvel noreply at git.blender.org
Mon Feb 16 09:48:57 CET 2015


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
+)




More information about the Bf-blender-cvs mailing list