| # This module defines | |
| # SDL2_LIBRARY, the name of the library to link against | |
| # SDL2_FOUND, if false, do not try to link to SDL2 | |
| # SDL2_INCLUDE_DIR, where to find SDL.h | |
| # SDL2_DLL_DIR, where to find SDL2.dll if it exists | |
| # | |
| # This module responds to the the flag: | |
| # SDL2_BUILDING_LIBRARY | |
| # If this is defined, then no SDL2main 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 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 SDL2 library | |
| # (SDL2.dll, libsdl2.so, SDL2.framework, etc). | |
| # Set SDL2_LIBRARY_TEMP to point to your SDL2 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 SDL2. | |
| # 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 SDL2main 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. | |
| # | |
| # Note that the header path has changed from SDL2/SDL.h to just SDL.h | |
| # This needed to change because "proper" SDL convention | |
| # is #include "SDL.h", not <SDL2/SDL.h>. This is done for portability | |
| # reasons because not all systems place things in SDL2/ (see FreeBSD). | |
| #============================================================================= | |
| # Copyright 2003-2009 Kitware, Inc. | |
| # | |
| # Distributed under the OSI-approved BSD License (the "License"). | |
| # | |
| # 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. | |
| #============================================================================= | |
| # CMake - Cross Platform Makefile Generator | |
| # Copyright 2000-2016 Kitware, Inc. | |
| # Copyright 2000-2011 Insight Software Consortium | |
| # All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or without | |
| # modification, are permitted provided that the following conditions | |
| # are met: | |
| # | |
| # * Redistributions of source code must retain the above copyright | |
| # notice, this list of conditions and the following disclaimer. | |
| # | |
| # * Redistributions in binary form must reproduce the above copyright | |
| # notice, this list of conditions and the following disclaimer in the | |
| # documentation and/or other materials provided with the distribution. | |
| # | |
| # * Neither the names of Kitware, Inc., the Insight Software Consortium, | |
| # nor the names of their contributors may be used to endorse or promote | |
| # products derived from this software without specific prior written | |
| # permission. | |
| # | |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
| # HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| # | |
| # ------------------------------------------------------------------------------ | |
| # | |
| # The above copyright and license notice applies to distributions of | |
| # CMake in source and binary form. Some source files contain additional | |
| # notices of original copyright by their contributors; see each source | |
| # for details. Third-party software packages supplied with CMake under | |
| # compatible licenses provide their own copyright notices documented in | |
| # corresponding subdirectories. | |
| # | |
| # ------------------------------------------------------------------------------ | |
| # | |
| # CMake was initially developed by Kitware with the following sponsorship: | |
| # | |
| # * National Library of Medicine at the National Institutes of Health | |
| # as part of the Insight Segmentation and Registration Toolkit (ITK). | |
| # | |
| # * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel | |
| # Visualization Initiative. | |
| # | |
| # * National Alliance for Medical Image Computing (NAMIC) is funded by the | |
| # National Institutes of Health through the NIH Roadmap for Medical Research, | |
| # Grant U54 EB005149. | |
| # | |
| # * Kitware, Inc. | |
| # | |
| message("<FindSDL2.cmake>") | |
| SET(SDL2_SEARCH_PATHS | |
| ~/Library/Frameworks | |
| /Library/Frameworks | |
| /usr/local | |
| /usr | |
| /usr/include/SDL # Budgie | |
| /sw # Fink | |
| /opt/local # DarwinPorts | |
| /opt/csw # Blastwave | |
| /opt | |
| ${SDL2_PATH} | |
| ) | |
| 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 | |
| $ENV{SDL2DIR} | |
| PATH_SUFFIXES lib64 lib ${VC_LIB_PATH_SUFFIX} | |
| PATHS ${SDL2_SEARCH_PATHS} | |
| ) | |
| IF(SDL2_LIBRARY_TEMP) | |
| if(MSVC) | |
| get_filename_component(SDL2_DLL_DIR_TEMP ${SDL2_LIBRARY_TEMP} DIRECTORY) | |
| if(EXISTS ${SDL2_DLL_DIR_TEMP}/SDL2.dll) | |
| set(SDL2_DLL_DIR ${SDL2_DLL_DIR_TEMP}) | |
| unset(SDL2_DLL_DIR_TEMP) | |
| endif() | |
| endif() | |
| FIND_PATH(SDL2_INCLUDE_DIR SDL.h | |
| HINTS | |
| $ENV{SDL2DIR} | |
| PATH_SUFFIXES include/SDL2 include | |
| PATHS ${SDL2_SEARCH_PATHS} | |
| ) | |
| IF(NOT SDL2_BUILDING_LIBRARY) | |
| IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") | |
| # Non-OS X framework versions expect you to also dynamically link to | |
| # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms | |
| # seem to provide SDL2main for compatibility even though they don't | |
| # necessarily need it. | |
| FIND_LIBRARY(SDL2MAIN_LIBRARY | |
| NAMES SDL2main | |
| HINTS | |
| $ENV{SDL2DIR} | |
| PATH_SUFFIXES lib64 lib | |
| PATHS ${SDL2_SEARCH_PATHS} | |
| ) | |
| ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework") | |
| ENDIF(NOT SDL2_BUILDING_LIBRARY) | |
| # SDL2 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(NOT APPLE) | |
| # MinGW needs an additional library, mwindows | |
| # It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -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(MINGW) | |
| # For SDL2main | |
| IF(NOT SDL2_BUILDING_LIBRARY) | |
| IF(SDL2MAIN_LIBRARY) | |
| SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP}) | |
| ENDIF(SDL2MAIN_LIBRARY) | |
| ENDIF(NOT SDL2_BUILDING_LIBRARY) | |
| # For OS X, SDL2 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(APPLE) | |
| # 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(NOT APPLE) | |
| # For MinGW library | |
| IF(MINGW) | |
| SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP}) | |
| ENDIF(MINGW) | |
| # Set the final string here so the GUI reflects the final state. | |
| SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found") | |
| # Unset the temp variable to INTERNAL so it is not seen in the CMake GUI | |
| UNSET(SDL2_LIBRARY_TEMP) | |
| ENDIF(SDL2_LIBRARY_TEMP) | |
| message("</FindSDL2.cmake>") | |
| INCLUDE(FindPackageHandleStandardArgs) | |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR) | |