FindSDL_image.cmake 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # - Locate SDL_image library
  2. # This module defines
  3. # SDLIMAGE_LIBRARY, the library to link against
  4. # SDLIMAGE_FOUND, if false, do not try to link to SDL
  5. # SDLIMAGE_INCLUDE_DIR, where to find SDL/SDL.h
  6. #
  7. # $SDLDIR is an environment variable that would
  8. # correspond to the ./configure --prefix=$SDLDIR
  9. # used in building SDL.
  10. #
  11. # Created by Eric Wing. This was influenced by the FindSDL.cmake
  12. # module, but with modifications to recognize OS X frameworks and
  13. # additional Unix paths (FreeBSD, etc).
  14. # On OSX, this will prefer the Framework version (if found) over others.
  15. # People will have to manually change the cache values of
  16. # SDLIMAGE_LIBRARY to override this selection.
  17. FIND_PATH(SDLIMAGE_INCLUDE_DIR SDL_image.h
  18. $ENV{SDLIMAGEDIR}/include
  19. $ENV{SDLDIR}/include
  20. ~/Library/Frameworks/SDL_image.framework/Headers
  21. /Library/Frameworks/SDL_image.framework/Headers
  22. /usr/local/include/SDL
  23. /usr/include/SDL
  24. /usr/local/include/SDL12
  25. /usr/local/include/SDL11 # FreeBSD ports
  26. /usr/include/SDL12
  27. /usr/include/SDL11
  28. /usr/local/include
  29. /usr/include
  30. /sw/include/SDL # Fink
  31. /sw/include
  32. /opt/local/include/SDL # DarwinPorts
  33. /opt/local/include
  34. /opt/csw/include/SDL # Blastwave
  35. /opt/csw/include
  36. /opt/include/SDL
  37. /opt/include
  38. )
  39. # I'm not sure if I should do a special casing for Apple. It is
  40. # unlikely that other Unix systems will find the framework path.
  41. # But if they do ([Next|Open|GNU]Step?),
  42. # do they want the -framework option also?
  43. IF(${SDLIMAGE_INCLUDE_DIR} MATCHES ".framework")
  44. # Extract the path the framework resides in so we can use it for the -F flag
  45. STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" SDLIMAGE_FRAMEWORK_PATH_TEMP ${SDLIMAGE_INCLUDE_DIR})
  46. IF("${SDLIMAGE_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
  47. OR "${SDLIMAGE_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
  48. )
  49. # String is in default search path, don't need to use -F
  50. SET(SDLIMAGE_LIBRARY "-framework SDL_image" CACHE STRING "SDL_image framework for OSX")
  51. ELSE("${SDLIMAGE_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
  52. OR "${SDLIMAGE_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
  53. )
  54. # String is not /Library/Frameworks, need to use -F
  55. SET(SDLIMAGE_LIBRARY "-F${SDLIMAGE_FRAMEWORK_PATH_TEMP} -framework SDL_image" CACHE STRING "SDL_image framework for OSX")
  56. ENDIF("${SDLIMAGE_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
  57. OR "${SDLIMAGE_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
  58. )
  59. # Clear the temp variable so nobody can see it
  60. SET(SDLIMAGE_FRAMEWORK_PATH_TEMP "" CACHE INTERNAL "")
  61. ELSE(${SDLIMAGE_INCLUDE_DIR} MATCHES ".framework")
  62. FIND_LIBRARY(SDLIMAGE_LIBRARY
  63. NAMES SDL_image
  64. PATHS
  65. $ENV{SDLIMAGEDIR}/lib
  66. $ENV{SDLDIR}/lib
  67. /usr/local/lib
  68. /usr/lib
  69. /sw/lib
  70. /opt/local/lib
  71. /opt/csw/lib
  72. /opt/lib
  73. )
  74. ENDIF(${SDLIMAGE_INCLUDE_DIR} MATCHES ".framework")
  75. SET(SDLIMAGE_FOUND "NO")
  76. IF(SDLIMAGE_LIBRARY)
  77. SET(SDLIMAGE_FOUND "YES")
  78. ENDIF(SDLIMAGE_LIBRARY)