summaryrefslogtreecommitdiffstats
path: root/Modules/FindPhysFS.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/FindPhysFS.cmake')
-rw-r--r--Modules/FindPhysFS.cmake106
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)