FindOpenAL.cmake 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # - Locate OpenAL
  2. # This module defines
  3. # OPENAL_LIBRARY
  4. # OPENAL_FOUND, if false, do not try to link to OpenAL
  5. # OPENAL_INCLUDE_DIR, where to find the headers
  6. #
  7. # $OPENALDIR is an environment variable that would
  8. # correspond to the ./configure --prefix=$OPENALDIR
  9. # used in building OpenAL.
  10. #
  11. # Created by Eric Wing. This was influenced by the FindSDL.cmake module.
  12. # On OSX, this will prefer the Framework version (if found) over others.
  13. # People will have to manually change the cache values of
  14. # OPENAL_LIBRARY to override this selection.
  15. # Tiger will include OpenAL as part of the System.
  16. # But for now, we have to look around.
  17. # Other (Unix) systems should be able to utilize the non-framework paths.
  18. FIND_PATH(OPENAL_INCLUDE_DIR AL/al.h
  19. $ENV{OPENALDIR}/include
  20. ~/Library/Frameworks/OpenAL.framework/Headers
  21. /Library/Frameworks/OpenAL.framework/Headers
  22. /System/Library/Frameworks/OpenAL.framework/Headers # Tiger
  23. /usr/pack/openal-0.0.8-cl/include # Tardis specific hack
  24. /usr/local/include/
  25. /usr/local/include/OpenAL
  26. /usr/local/include
  27. /usr/include/
  28. /usr/include/OpenAL
  29. /usr/include
  30. /sw/include # Fink
  31. /sw/include/OpenAL
  32. /sw/include
  33. /opt/local/include # DarwinPorts
  34. /opt/local/include/OpenAL
  35. /opt/local/include
  36. /opt/csw/include # Blastwave
  37. /opt/csw/include/OpenAL
  38. /opt/csw/include
  39. /opt/include
  40. /opt/include/OpenAL
  41. /opt/include
  42. ../libs/openal-0.0.8/common/include
  43. )
  44. # I'm not sure if I should do a special casing for Apple. It is
  45. # unlikely that other Unix systems will find the framework path.
  46. # But if they do ([Next|Open|GNU]Step?),
  47. # do they want the -framework option also?
  48. IF(${OPENAL_INCLUDE_DIR} MATCHES ".framework")
  49. STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" OPENAL_FRAMEWORK_PATH_TMP ${OPENAL_INCLUDE_DIR})
  50. IF("${OPENAL_FRAMEWORK_PATH_TMP}" STREQUAL "/Library/Frameworks"
  51. OR "${OPENAL_FRAMEWORK_PATH_TMP}" STREQUAL "/System/Library/Frameworks"
  52. )
  53. # String is in default search path, don't need to use -F
  54. SET (OPENAL_LIBRARY "-framework OpenAL" CACHE STRING "OpenAL framework for OSX")
  55. ELSE("${OPENAL_FRAMEWORK_PATH_TMP}" STREQUAL "/Library/Frameworks"
  56. OR "${OPENAL_FRAMEWORK_PATH_TMP}" STREQUAL "/System/Library/Frameworks"
  57. )
  58. # String is not /Library/Frameworks, need to use -F
  59. SET(OPENAL_LIBRARY "-F${OPENAL_FRAMEWORK_PATH_TMP} -framework OpenAL" CACHE STRING "OpenAL framework for OSX")
  60. ENDIF("${OPENAL_FRAMEWORK_PATH_TMP}" STREQUAL "/Library/Frameworks"
  61. OR "${OPENAL_FRAMEWORK_PATH_TMP}" STREQUAL "/System/Library/Frameworks"
  62. )
  63. # Clear the temp variable so nobody can see it
  64. SET(OPENAL_FRAMEWORK_PATH_TMP "" CACHE INTERNAL "")
  65. ELSE(${OPENAL_INCLUDE_DIR} MATCHES ".framework")
  66. FIND_LIBRARY(OPENAL_LIBRARY
  67. NAMES openal al OpenAL32
  68. PATHS
  69. $ENV{OPENALDIR}/lib
  70. $ENV{OPENALDIR}/libs
  71. /usr/pack/openal-0.0.8-cl/i686-debian-linux3.1/lib
  72. /usr/local/lib
  73. /usr/lib
  74. /sw/lib
  75. /opt/local/lib
  76. /opt/csw/lib
  77. /opt/lib
  78. ../libs/openal-0.0.8/src/.libs
  79. )
  80. ENDIF(${OPENAL_INCLUDE_DIR} MATCHES ".framework")
  81. SET(OPENAL_FOUND "NO")
  82. IF(OPENAL_LIBRARY)
  83. SET(OPENAL_FOUND "YES")
  84. #MESSAGE(STATUS "OpenAL was found. ${OPENAL_LIBRARY}")
  85. ENDIF(OPENAL_LIBRARY)