| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 | 
							- #.rst:
 
- # FindSDL2
 
- # --------
 
- #
 
- # Locate SDL2 library
 
- #
 
- # This module defines
 
- #
 
- # ::
 
- #
 
- #   SDL2_LIBRARY, the name of the library to link against
 
- #   SDL2_FOUND, if false, do not try to link to SDL
 
- #   SDL2_INCLUDE_DIR, where to find SDL.h
 
- #   SDL2_VERSION_STRING, human-readable string containing the version of SDL
 
- #
 
- #
 
- #
 
- # This module responds to the flag:
 
- #
 
- # ::
 
- #
 
- #   SDL2_BUILDING_LIBRARY
 
- #     If this is defined, then no SDL2_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 SDL2_LIBRARY variable.
 
- #
 
- #
 
- #
 
- # Don't forget to include SDLmain.h and SDLmain.m your project for the
 
- # OS X framework based version.  (Other versions link to -lSDL2main 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 SDL2_LIBRARY_TEMP in your
 
- # configuration and no SDL2_LIBRARY, it means CMake did not find your SDL
 
- # library (SDL2.dll, libSDL2.so, SDL.framework, etc).  Set
 
- # SDL2_LIBRARY_TEMP to point to your SDL library, and configure again.
 
- # Similarly, if you see an empty SDL2MAIN_LIBRARY, you should set this
 
- # value as appropriate.  These values are used to generate the final
 
- # SDL2_LIBRARY variable, but when these values are unset, SDL2_LIBRARY
 
- # does not get created.
 
- #
 
- #
 
- #
 
- # $SDL2DIR is an environment variable that would correspond to the
 
- # ./configure --prefix=$SDL2DIR used in building SDL.  l.e.galup 9-20-02
 
- #
 
- # Modified by Eric Wing.  Added code to assist with automated building
 
- # by using environmental variables and providing a more
 
- # controlled/consistent search behavior.  Added new modifications to
 
- # recognize OS X frameworks and additional Unix paths (FreeBSD, etc).
 
- # Also corrected the header search path to follow "proper" SDL
 
- # guidelines.  Added a search for SDLmain which is needed by some
 
- # platforms.  Added a search for threads which is needed by some
 
- # platforms.  Added needed compile switches for MinGW.
 
- #
 
- # On OSX, this will prefer the Framework version (if found) over others.
 
- # People will have to manually change the cache values of SDL2_LIBRARY to
 
- # override this selection or set the CMake environment
 
- # CMAKE_INCLUDE_PATH to modify the search paths.
 
- #
 
- #=============================================================================
 
- # Copyright 2003-2009 Kitware, Inc.
 
- # Copyright 2012 Benjamin Eikel
 
- #
 
- # Distributed under the OSI-approved BSD License (the "License");
 
- # see accompanying file kitware license.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.
 
- #=============================================================================
 
- # (To distribute this file outside of CMake, substitute the full
 
- #  License text for the above reference.)
 
- if (NOT WIN32)
 
-     find_package(PkgConfig)
 
-     if (PKG_CONFIG_FOUND)
 
-         pkg_check_modules(_SDL2 sdl2)
 
-         set(SDL2_VERSION_STRING ${_SDL2_VERSION})
 
-     endif ()
 
- endif ()
 
- find_path(SDL2_INCLUDE_DIR 
 
-     SDL.h
 
-   HINTS
 
-     ${_SDL2_INCLUDEDIR}
 
-     ENV SDL2DIR
 
-   PATH_SUFFIXES 
 
-     SDL2
 
-     include/SDL2 
 
-     include
 
- )
 
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
 
-   set(VC_LIB_PATH_SUFFIX lib/x64)
 
- else()
 
-   set(VC_LIB_PATH_SUFFIX lib/x86)
 
- endif()
 
- find_library(SDL2_LIBRARY_TEMP
 
-   NAMES 
 
-     SDL2
 
-   HINTS
 
-     ${_SDL2_LIBDIR}
 
-     ENV SDL2DIR
 
-   PATH_SUFFIXES 
 
-     lib 
 
-     ${VC_LIB_PATH_SUFFIX}
 
- )
 
- if(NOT SDL2_BUILDING_LIBRARY)
 
-   if(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
 
-     # Non-OS X framework versions expect you to also dynamically link to
 
-     # SDLmain. This is mainly for Windows and OS X. Other (Unix) platforms
 
-     # seem to provide SDLmain for compatibility even though they don't
 
-     # necessarily need it.
 
-     find_library(SDL2MAIN_LIBRARY
 
-       NAMES 
 
-         SDL2main
 
-       HINTS
 
-         ENV SDL2DIR
 
-       PATH_SUFFIXES 
 
-         lib
 
-         ${VC_LIB_PATH_SUFFIX}
 
-       PATHS
 
-         /sw
 
-         /opt/local
 
-         /opt/csw
 
-         /opt
 
-     )
 
-   endif()
 
- endif()
 
- # SDL may require threads on your system.
 
- # The Apple build may not need an explicit flag because one of the
 
- # frameworks may already provide it.
 
- # But for non-OSX systems, I will use the CMake Threads package.
 
- if(NOT APPLE)
 
-   find_package(Threads)
 
- endif()
 
- # MinGW needs an additional library, mwindows
 
- # It's total link flags should look like -lmingw32 -lSDLmain -lSDL -lmwindows
 
- # (Actually on second look, I think it only needs one of the m* libraries.)
 
- if(MINGW)
 
-   set(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
 
- endif()
 
- if(SDL2_LIBRARY_TEMP)
 
-   # For SDLmain
 
-   if(SDL2MAIN_LIBRARY AND NOT SDL2_BUILDING_LIBRARY)
 
-     list(FIND SDL2_LIBRARY_TEMP "${SDL2MAIN_LIBRARY}" _SDL2_MAIN_INDEX)
 
-     if(_SDL2_MAIN_INDEX EQUAL -1)
 
-       set(SDL2_LIBRARY_TEMP "${SDL2MAIN_LIBRARY}" ${SDL2_LIBRARY_TEMP})
 
-     endif()
 
-     unset(_SDL2_MAIN_INDEX)
 
-   endif()
 
-   # For OS X, SDL uses Cocoa as a backend so it must link to Cocoa.
 
-   # CMake doesn't display the -framework Cocoa string in the UI even
 
-   # though it actually is there if I modify a pre-used variable.
 
-   # I think it has something to do with the CACHE STRING.
 
-   # So I use a temporary variable until the end so I can set the
 
-   # "real" variable in one-shot.
 
-   if(APPLE)
 
-     set(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa")
 
-   endif()
 
-   # For threads, as mentioned Apple doesn't need this.
 
-   # In fact, there seems to be a problem if I used the Threads package
 
-   # and try using this line, so I'm just skipping it entirely for OS X.
 
-   if(NOT APPLE)
 
-     set(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
 
-   endif()
 
-   # For MinGW library
 
-   if(MINGW)
 
-     set(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP})
 
-   endif()
 
-   # Set the final string here so the GUI reflects the final state.
 
-   set(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL Library can be found")
 
-   # Set the temp variable to INTERNAL so it is not seen in the CMake GUI
 
-   set(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "")
 
- endif()
 
- if(SDL2_INCLUDE_DIR AND EXISTS "${SDL2_INCLUDE_DIR}/SDL_version.h" AND NOT SDL2_VERSION_STRING)
 
-   file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+[0-9]+$")
 
-   file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_MINOR_LINE REGEX "^#define[ \t]+SDL_MINOR_VERSION[ \t]+[0-9]+$")
 
-   file(STRINGS "${SDL2_INCLUDE_DIR}/SDL_version.h" SDL2_VERSION_PATCH_LINE REGEX "^#define[ \t]+SDL_PATCHLEVEL[ \t]+[0-9]+$")
 
-   string(REGEX REPLACE "^#define[ \t]+SDL_MAJOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MAJOR "${SDL2_VERSION_MAJOR_LINE}")
 
-   string(REGEX REPLACE "^#define[ \t]+SDL_MINOR_VERSION[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_MINOR "${SDL2_VERSION_MINOR_LINE}")
 
-   string(REGEX REPLACE "^#define[ \t]+SDL_PATCHLEVEL[ \t]+([0-9]+)$" "\\1" SDL2_VERSION_PATCH "${SDL2_VERSION_PATCH_LINE}")
 
-   set(SDL2_VERSION_STRING ${SDL2_VERSION_MAJOR}.${SDL2_VERSION_MINOR}.${SDL2_VERSION_PATCH})
 
-   unset(SDL2_VERSION_MAJOR_LINE)
 
-   unset(SDL2_VERSION_MINOR_LINE)
 
-   unset(SDL2_VERSION_PATCH_LINE)
 
-   unset(SDL2_VERSION_MAJOR)
 
-   unset(SDL2_VERSION_MINOR)
 
-   unset(SDL2_VERSION_PATCH)
 
- endif()
 
- set(SDL2_LIBRARIES ${SDL2_LIBRARY})
 
- set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
 
- include(FindPackageHandleStandardArgs)
 
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2
 
-                                   REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR
 
-                                   VERSION_VAR SDL2_VERSION_STRING)
 
 
  |