diff options
Diffstat (limited to 'Modules/FindPhysFS.cmake')
-rw-r--r-- | Modules/FindPhysFS.cmake | 106 |
1 files changed, 57 insertions, 49 deletions
diff --git a/Modules/FindPhysFS.cmake b/Modules/FindPhysFS.cmake index aed1a2d..6980dff 100644 --- a/Modules/FindPhysFS.cmake +++ b/Modules/FindPhysFS.cmake @@ -1,60 +1,68 @@ -# - Locate PhysFS library +# Locate PhysFS library # This module defines -# PHYSFS_LIBRARY, the name of the library to link with -# PHYSFS_FOUND, if false, do not try to link to PHYSFS -# PHYSFS_INCLUDE_DIR, where to find PHYSFS/PHYSFS.h +# PHYSFS_LIBRARY, the name of the library to link against +# PHYSFS_FOUND, if false, do not try to link to PHYSFS +# PHYSFS_INCLUDE_DIR, where to find physfs.h # # $PHYSFSDIR is an environment variable that would # correspond to the ./configure --prefix=$PHYSFSDIR # used in building PHYSFS. # -# Created by Eric Wing. This was influenced by the FindSDL.cmake -# module, but with modifications to recognize OS X frameworks. +# Created by Eric Wing. -# On OSX, this will prefer the Framework version (if found) over others. -# People will have to manually change the cache values of -# PHYSFS_LIBRARY to override this selection. - -FIND_PATH(PHYSFS_INCLUDE_DIR NAMES physfs.h - PATH_SUFFIXES physfs +FIND_PATH(PHYSFS_INCLUDE_DIR physfs.h PATHS - $ENV{PHYSFSDIR}/include - ~/Library/Frameworks/PhysFS.framework/Headers - /Library/Frameworks/PhysFS.framework/Headers - ) - -# 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(${PHYSFS_INCLUDE_DIR} MATCHES ".framework") - STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" PHYSFS_FRAMEWORK_PATH_TMP ${PHYSFS_INCLUDE_DIR}) - IF("${PHYSFS_FRAMEWORK_PATH_TMP}" STREQUAL "/Library/Frameworks" - OR "${PHYSFS_FRAMEWORK_PATH_TMP}" STREQUAL "/System/Library/Frameworks" - ) - # String is in default search path, don't need to use -F - SET(PHYSFS_LIBRARY "-framework PhysFS" CACHE STRING "PhysFS framework for OSX") - ELSE("${PHYSFS_FRAMEWORK_PATH_TMP}" STREQUAL "/Library/Frameworks" - OR "${PHYSFS_FRAMEWORK_PATH_TMP}" STREQUAL "/System/Library/Frameworks" - ) - # String is not /Library/Frameworks, need to use -F - SET(PHYSFS_LIBRARY "-F${PHYSFS_FRAMEWORK_PATH_TMP} -framework PhysFS" CACHE STRING "PhysFS framework for OSX") - ENDIF("${PHYSFS_FRAMEWORK_PATH_TMP}" STREQUAL "/Library/Frameworks" - OR "${PHYSFS_FRAMEWORK_PATH_TMP}" STREQUAL "/System/Library/Frameworks" - ) - # Clear the temp variable so nobody can see it - SET(PHYSFS_FRAMEWORK_PATH_TMP "" CACHE INTERNAL "") + $ENV{PHYSFSDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES include +) +FIND_PATH(PHYSFS_INCLUDE_DIR physfs.h + PATHS ${CMAKE_PREFIX_PATH} # Unofficial: We are proposing this. + NO_DEFAULT_PATH + PATH_SUFFIXES include +) +FIND_PATH(PHYSFS_INCLUDE_DIR physfs.h + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + PATH_SUFFIXES include/physfs include +) -ELSE(${PHYSFS_INCLUDE_DIR} MATCHES ".framework") - FIND_LIBRARY(PHYSFS_LIBRARY - NAMES physfs PhysFS - PATHS - $ENV{PHYSFSDIR}/lib - ) +FIND_LIBRARY(PHYSFS_LIBRARY + NAMES physfs + PATHS + $ENV{PHYSFSDIR} + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) +FIND_LIBRARY(PHYSFS_LIBRARY + NAMES physfs + PATHS ${CMAKE_PREFIX_PATH} # Unofficial: We are proposing this. + NO_DEFAULT_PATH + PATH_SUFFIXES lib64 lib +) +FIND_LIBRARY(PHYSFS_LIBRARY + NAMES physfs + PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw + /opt/local + /opt/csw + /opt + PATH_SUFFIXES lib64 lib +) -ENDIF(${PHYSFS_INCLUDE_DIR} MATCHES ".framework") +SET(PHYSFS_FOUND "NO") +IF(PHYSFS_LIBRARY AND PHYSFS_INCLUDE_DIR) + SET(PHYSFS_FOUND "YES") +ENDIF(PHYSFS_LIBRARY AND PHYSFS_INCLUDE_DIR) -# handle the QUIETLY and REQUIRED arguments and set PHYSFS_FOUND to TRUE if -# all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(PhysFS DEFAULT_MSG PHYSFS_LIBRARY PHYSFS_INCLUDE_DIR) |