FindSDL_mixer.cmake 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # - Locate the SDL_mixer library
  2. # This module defines
  3. # SDLMIXER_LIBRARY, library to link against
  4. # SDLMIXER_FOUND, if false, do not try to link to SDL
  5. # SDLMIXER_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. # SDLMIXER_LIBRARY to override this selection.
  17. FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h
  18. $ENV{SDLMIXERDIR}/include
  19. $ENV{SDLDIR}/include
  20. ~/Library/Frameworks/SDL_mixer.framework/Headers
  21. /Library/Frameworks/SDL_mixer.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(${SDLMIXER_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" SDLMIXER_FRAMEWORK_PATH_TEMP ${SDLMIXER_INCLUDE_DIR})
  46. IF("${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
  47. OR "${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
  48. )
  49. # String is in default search path, don't need to use -F
  50. SET(SDLMIXER_LIBRARY "-framework SDL_mixer" CACHE STRING "SDL_mixer framework for OSX")
  51. ELSE("${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
  52. OR "${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
  53. )
  54. # String is not /Library/Frameworks, need to use -F
  55. SET(SDLMIXER_LIBRARY "-F${SDLMIXER_FRAMEWORK_PATH_TEMP} -framework SDL_mixer" CACHE STRING "SDL_mixer framework for OSX")
  56. ENDIF("${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
  57. OR "${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
  58. )
  59. # Clear the temp variable so nobody can see it
  60. SET(SDLMIXER_FRAMEWORK_PATH_TEMP "" CACHE INTERNAL "")
  61. ELSE(${SDLMIXER_INCLUDE_DIR} MATCHES ".framework")
  62. FIND_LIBRARY(SDLMIXER_LIBRARY
  63. NAMES SDL_mixer
  64. PATHS
  65. $ENV{SDLMIXERDIR}/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(${SDLMIXER_INCLUDE_DIR} MATCHES ".framework")
  75. SET(SDLMIXER_FOUND "NO")
  76. IF(SDLMIXER_LIBRARY)
  77. SET(SDLMIXER_FOUND "YES")
  78. ENDIF(SDLMIXER_LIBRARY)