summaryrefslogtreecommitdiffstats
path: root/Modules/FindSDL_mixer.cmake
diff options
context:
space:
mode:
authorEric Wing <ewing2121@yahoo.com>2007-12-21 01:59:44 (GMT)
committerEric Wing <ewing2121@yahoo.com>2007-12-21 01:59:44 (GMT)
commita5b3ab4eee1f11287c69da39b5e742353fdbd372 (patch)
tree4aaf6549ec4f360eb44a05ca3b6568b8783452ff /Modules/FindSDL_mixer.cmake
parent355b1f23afd6809edb9ed1924c0112d02d4c8f85 (diff)
downloadCMake-a5b3ab4eee1f11287c69da39b5e742353fdbd372.zip
CMake-a5b3ab4eee1f11287c69da39b5e742353fdbd372.tar.gz
CMake-a5b3ab4eee1f11287c69da39b5e742353fdbd372.tar.bz2
BUG: Fixed modules to set FOO_FOUND when both headers and libraries are found.
BUG: FindSDL now has flag it responds to so it will not find/link against SDLmain. This is required to build libraries instead of applications since they don't have main(). ENH: All modules have a predictable search order, where environmental variables are searched before system paths. This is designed to make automation easier for those that need to automatically build projects without intervention but may be using alternative install locations for isolated testing. ENH: New modules for OpenSceneGraph, Freetype, GDAL, Lua, QuickTime, GIFLIB, Producer, OpenThreads. STYLE: Added documentation explaining peculuar SDL_LIBRARY_TEMP variable in SDL module when library find is incomplete.
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)