Annotation of previous_trunk/cmake/FindSDL2.cmake, revision 1.1

1.1     ! root        1: # Locate SDL2 library
        !             2: # This module defines
        !             3: # SDL2_LIBRARY, the name of the library to link against
        !             4: # SDL2_FOUND, if false, do not try to link to SDL2
        !             5: # SDL2_INCLUDE_DIR, where to find SDL.h
        !             6: #
        !             7: # This module responds to the the flag:
        !             8: # SDL2_BUILDING_LIBRARY
        !             9: # If this is defined, then no SDL2main will be linked in because
        !            10: # only applications need main().
        !            11: # Otherwise, it is assumed you are building an application and this
        !            12: # module will attempt to locate and set the the proper link flags
        !            13: # as part of the returned SDL2_LIBRARY variable.
        !            14: #
        !            15: # Don't forget to include SDLmain.h and SDLmain.m your project for the
        !            16: # OS X framework based version. (Other versions link to -lSDL2main which
        !            17: # this module will try to find on your behalf.) Also for OS X, this
        !            18: # module will automatically add the -framework Cocoa on your behalf.
        !            19: #
        !            20: #
        !            21: # Additional Note: If you see an empty SDL2_LIBRARY_TEMP in your configuration
        !            22: # and no SDL2_LIBRARY, it means CMake did not find your SDL2 library
        !            23: # (SDL2.dll, libsdl2.so, SDL2.framework, etc).
        !            24: # Set SDL2_LIBRARY_TEMP to point to your SDL2 library, and configure again.
        !            25: # Similarly, if you see an empty SDL2MAIN_LIBRARY, you should set this value
        !            26: # as appropriate. These values are used to generate the final SDL2_LIBRARY
        !            27: # variable, but when these values are unset, SDL2_LIBRARY does not get created.
        !            28: #
        !            29: #
        !            30: # $SDL2DIR is an environment variable that would
        !            31: # correspond to the ./configure --prefix=$SDL2DIR
        !            32: # used in building SDL2.
        !            33: # l.e.galup  9-20-02
        !            34: #
        !            35: # Modified by Eric Wing.
        !            36: # Added code to assist with automated building by using environmental variables
        !            37: # and providing a more controlled/consistent search behavior.
        !            38: # Added new modifications to recognize OS X frameworks and
        !            39: # additional Unix paths (FreeBSD, etc).
        !            40: # Also corrected the header search path to follow "proper" SDL guidelines.
        !            41: # Added a search for SDL2main which is needed by some platforms.
        !            42: # Added a search for threads which is needed by some platforms.
        !            43: # Added needed compile switches for MinGW.
        !            44: #
        !            45: # On OSX, this will prefer the Framework version (if found) over others.
        !            46: # People will have to manually change the cache values of
        !            47: # SDL2_LIBRARY to override this selection or set the CMake environment
        !            48: # CMAKE_INCLUDE_PATH to modify the search paths.
        !            49: #
        !            50: # Note that the header path has changed from SDL2/SDL.h to just SDL.h
        !            51: # This needed to change because "proper" SDL convention
        !            52: # is #include "SDL.h", not <SDL2/SDL.h>. This is done for portability
        !            53: # reasons because not all systems place things in SDL2/ (see FreeBSD).
        !            54: 
        !            55: #=============================================================================
        !            56: # Copyright 2003-2009 Kitware, Inc.
        !            57: #
        !            58: # Distributed under the OSI-approved BSD License (the "License");
        !            59: # see accompanying file Copyright.txt for details.
        !            60: #
        !            61: # This software is distributed WITHOUT ANY WARRANTY; without even the
        !            62: # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
        !            63: # See the License for more information.
        !            64: #=============================================================================
        !            65: # (To distribute this file outside of CMake, substitute the full
        !            66: #  License text for the above reference.)
        !            67: 
        !            68: SET(SDL2_SEARCH_PATHS
        !            69:   ~/Library/Frameworks
        !            70:   /Library/Frameworks
        !            71:   /usr/local
        !            72:   /usr
        !            73:   /sw # Fink
        !            74:   /opt/local # DarwinPorts
        !            75:   /opt/csw # Blastwave
        !            76:   /opt
        !            77:   /system/develop # Haiku
        !            78: )
        !            79: 
        !            80: FIND_PATH(SDL2_INCLUDE_DIR SDL_scancode.h
        !            81:   HINTS
        !            82:   $ENV{SDL2DIR}
        !            83:   PATH_SUFFIXES include/SDL2 include headers/x86/SDL2 headers/SDL2 headers
        !            84:   PATHS ${SDL2_SEARCH_PATHS}
        !            85: )
        !            86: 
        !            87: FIND_LIBRARY(SDL2_LIBRARY_TEMP
        !            88:   NAMES SDL2
        !            89:   HINTS
        !            90:   $ENV{SDL2DIR}
        !            91:   PATH_SUFFIXES lib64 lib/x86 lib
        !            92:   PATHS ${SDL2_SEARCH_PATHS}
        !            93: )
        !            94: 
        !            95: IF(NOT SDL2_BUILDING_LIBRARY)
        !            96:   IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
        !            97:     # Non-OS X framework versions expect you to also dynamically link to
        !            98:     # SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
        !            99:     # seem to provide SDL2main for compatibility even though they don't
        !           100:     # necessarily need it.
        !           101:     FIND_LIBRARY(SDL2MAIN_LIBRARY
        !           102:       NAMES SDL2main
        !           103:       HINTS
        !           104:       $ENV{SDL2DIR}
        !           105:       PATH_SUFFIXES lib64 lib/x86 lib
        !           106:       PATHS ${SDL2_SEARCH_PATHS}
        !           107:     )
        !           108:   ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
        !           109: ENDIF(NOT SDL2_BUILDING_LIBRARY)
        !           110: 
        !           111: # SDL2 may require threads on your system.
        !           112: # The Apple build may not need an explicit flag because one of the
        !           113: # frameworks may already provide it.
        !           114: # But for non-OSX systems, I will use the CMake Threads package.
        !           115: IF(NOT APPLE)
        !           116:   FIND_PACKAGE(Threads)
        !           117: ENDIF(NOT APPLE)
        !           118: 
        !           119: # MinGW needs an additional library, mwindows
        !           120: # It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows
        !           121: # (Actually on second look, I think it only needs one of the m* libraries.)
        !           122: IF(MINGW)
        !           123:   SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
        !           124: ENDIF(MINGW)
        !           125: 
        !           126: IF(SDL2_LIBRARY_TEMP)
        !           127:   # For SDL2main
        !           128:   IF(NOT SDL2_BUILDING_LIBRARY)
        !           129:     IF(SDL2MAIN_LIBRARY)
        !           130:       SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP})
        !           131:     ENDIF(SDL2MAIN_LIBRARY)
        !           132:   ENDIF(NOT SDL2_BUILDING_LIBRARY)
        !           133: 
        !           134:   # For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
        !           135:   # CMake doesn't display the -framework Cocoa string in the UI even
        !           136:   # though it actually is there if I modify a pre-used variable.
        !           137:   # I think it has something to do with the CACHE STRING.
        !           138:   # So I use a temporary variable until the end so I can set the
        !           139:   # "real" variable in one-shot.
        !           140:   IF(APPLE)
        !           141:     SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa")
        !           142:   ENDIF(APPLE)
        !           143: 
        !           144:   # For threads, as mentioned Apple doesn't need this.
        !           145:   # In fact, there seems to be a problem if I used the Threads package
        !           146:   # and try using this line, so I'm just skipping it entirely for OS X.
        !           147:   IF(NOT APPLE)
        !           148:     SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
        !           149:   ENDIF(NOT APPLE)
        !           150: 
        !           151:   # For MinGW library
        !           152:   IF(MINGW)
        !           153:     SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP})
        !           154:   ENDIF(MINGW)
        !           155: 
        !           156:   # Set the final string here so the GUI reflects the final state.
        !           157:   SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found")
        !           158:   # Set the temp variable to INTERNAL so it is not seen in the CMake GUI
        !           159:   SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "")
        !           160: ENDIF(SDL2_LIBRARY_TEMP)
        !           161: 
        !           162: INCLUDE(FindPackageHandleStandardArgs)
        !           163: 
        !           164: FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.