summaryrefslogtreecommitdiffstats
path: root/Modules/FindSDL_mixer.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/FindSDL_mixer.cmake')
-rw-r--r--Modules/FindSDL_mixer.cmake99
1 files changed, 49 insertions, 50 deletions
diff --git a/Modules/FindSDL_mixer.cmake b/Modules/FindSDL_mixer.cmake
index bea993d..a1a5423 100644
--- a/Modules/FindSDL_mixer.cmake
+++ b/Modules/FindSDL_mixer.cmake
@@ -1,8 +1,8 @@
-# - Locate the SDL_mixer library
+# Locate SDL_mixer library
# This module defines
-# SDLMIXER_LIBRARY, library to link against
-# SDLMIXER_FOUND, if false, do not try to link to SDL
-# SDLMIXER_INCLUDE_DIR, where to find SDL/SDL.h
+# SDLMIXER_LIBRARY, the name of the library to link against
+# SDLMIXER_FOUND, if false, do not try to link to SDL
+# SDLMIXER_INCLUDE_DIR, where to find SDL/SDL.h
#
# $SDLDIR is an environment variable that would
# correspond to the ./configure --prefix=$SDLDIR
@@ -12,14 +12,22 @@
# module, but with modifications to recognize OS X frameworks and
# additional Unix paths (FreeBSD, etc).
-# On OSX, this will prefer the Framework version (if found) over others.
-# People will have to manually change the cache values of
-# SDLMIXER_LIBRARY to override this selection.
FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h
- $ENV{SDLMIXERDIR}/include
- $ENV{SDLDIR}/include
- ~/Library/Frameworks/SDL_mixer.framework/Headers
- /Library/Frameworks/SDL_mixer.framework/Headers
+ PATHS
+ $ENV{SDLMIXERDIR}
+ $ENV{SDLDIR}
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES include
+)
+FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h
+ PATHS ${CMAKE_PREFIX_PATH} # Unofficial: We are proposing this.
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES include
+)
+FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h
+ PATHS
+ ~/Library/Frameworks
+ /Library/Frameworks
/usr/local/include/SDL
/usr/include/SDL
/usr/local/include/SDL12
@@ -36,47 +44,38 @@ FIND_PATH(SDLMIXER_INCLUDE_DIR SDL_mixer.h
/opt/csw/include
/opt/include/SDL
/opt/include
- )
-# I'm not sure if I should do a special casing for Apple. It is
-# unlikely that other Unix systems will find the framework path.
-# But if they do ([Next|Open|GNU]Step?),
-# do they want the -framework option also?
-IF(${SDLMIXER_INCLUDE_DIR} MATCHES ".framework")
- # Extract the path the framework resides in so we can use it for the -F flag
- STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" SDLMIXER_FRAMEWORK_PATH_TEMP ${SDLMIXER_INCLUDE_DIR})
- IF("${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
- OR "${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
- )
- # String is in default search path, don't need to use -F
- SET(SDLMIXER_LIBRARY "-framework SDL_mixer" CACHE STRING "SDL_mixer framework for OSX")
- ELSE("${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
- OR "${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
- )
- # String is not /Library/Frameworks, need to use -F
- SET(SDLMIXER_LIBRARY "-F${SDLMIXER_FRAMEWORK_PATH_TEMP} -framework SDL_mixer" CACHE STRING "SDL_mixer framework for OSX")
- ENDIF("${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
- OR "${SDLMIXER_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
- )
- # Clear the temp variable so nobody can see it
- SET(SDLMIXER_FRAMEWORK_PATH_TEMP "" CACHE INTERNAL "")
+)
-ELSE(${SDLMIXER_INCLUDE_DIR} MATCHES ".framework")
- FIND_LIBRARY(SDLMIXER_LIBRARY
- NAMES SDL_mixer
- PATHS
- $ENV{SDLMIXERDIR}/lib
- $ENV{SDLDIR}/lib
- /usr/local/lib
- /usr/lib
- /sw/lib
- /opt/local/lib
- /opt/csw/lib
- /opt/lib
- )
-ENDIF(${SDLMIXER_INCLUDE_DIR} MATCHES ".framework")
+FIND_LIBRARY(SDLMIXER_LIBRARY
+ NAMES SDL_mixer
+ PATHS
+ $ENV{SDLMIXERDIR}
+ $ENV{SDLDIR}
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES lib64 lib
+)
+FIND_LIBRARY(SDLMIXER_LIBRARY
+ NAMES SDL_mixer
+ PATHS ${CMAKE_PREFIX_PATH} # Unofficial: We are proposing this.
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES lib64 lib
+)
+FIND_LIBRARY(SDLMIXER_LIBRARY
+ NAMES SDL_mixer
+ PATHS
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /usr/local
+ /usr
+ /sw
+ /opt/local
+ /opt/csw
+ /opt
+ PATH_SUFFIXES lib64 lib
+)
SET(SDLMIXER_FOUND "NO")
-IF(SDLMIXER_LIBRARY)
+IF(SDLMIXER_LIBRARY AND SDLMIXER_INCLUDE_DIR)
SET(SDLMIXER_FOUND "YES")
-ENDIF(SDLMIXER_LIBRARY)
+ENDIF(SDLMIXER_LIBRARY AND SDLMIXER_INCLUDE_DIR)