/extlibs/SFML/cmake/Modules/FindSFML.cmake

https://bitbucket.org/hugoruscitti/pilascpp · CMake · 74 lines · 48 code · 8 blank · 18 comment · 2 complexity · 880499c1235d1fd1ba3c07ccb403d716 MD5 · raw file

  1. # Locate the SFML library
  2. #
  3. # This module defines
  4. # SFML_FOUND, if false, do not try to link to SFML
  5. # SFML_XXX_LIBRARY, library corresponding to the XXX component (release)
  6. # SFML_XXX_LIBRARY_DEBUG, library corresponding to the XXX component (debug)
  7. # SFML_LIBRARIES, list containing all the libraries corresponding to the requested components
  8. # SFML_INCLUDE_DIR, where to find SFML/Config.hpp
  9. #
  10. # By default, the dynamic libraries of SFML will be found. To find the static ones instead,
  11. # you must set the SFML_STATIC_LIBRARIES variable to TRUE before calling find_package(SFML ...).
  12. # deduce the SFML libraries prefix from the major version number
  13. set(FIND_SFML_LIB_PREFIX "sfml-")
  14. if(${SFML_FIND_VERSION_MAJOR} GREATER 1)
  15. set(FIND_SFML_LIB_PREFIX "sfml${SFML_FIND_VERSION_MAJOR}-")
  16. endif()
  17. # deduce the libraries suffix from the options
  18. set(FIND_SFML_LIB_SUFFIX "")
  19. if(SFML_STATIC_LIBRARIES)
  20. set(FIND_SFML_LIB_SUFFIX "${FIND_SFML_LIB_SUFFIX}-s")
  21. endif()
  22. # find the SFML include directory
  23. find_path(SFML_INCLUDE_DIR SFML/Config.hpp
  24. PATH_SUFFIXES include
  25. PATHS
  26. ~/Library/Frameworks
  27. /Library/Frameworks
  28. /usr/local/
  29. /usr/
  30. /sw # Fink
  31. /opt/local/ # DarwinPorts
  32. /opt/csw/ # Blastwave
  33. /opt/
  34. ${SFMLDIR})
  35. # find the requested components
  36. set(FIND_SFML_LIB_PATHS ~/Library/Frameworks
  37. /Library/Frameworks
  38. /usr/local
  39. /usr
  40. /sw
  41. /opt/local
  42. /opt/csw
  43. /opt
  44. ${SFMLDIR})
  45. foreach(FIND_SFML_COMPONENT ${SFML_FIND_COMPONENTS})
  46. string(TOLOWER ${FIND_SFML_COMPONENT} FIND_SFML_COMPONENT_LOWER)
  47. string(TOUPPER ${FIND_SFML_COMPONENT} FIND_SFML_COMPONENT_UPPER)
  48. set(FIND_SFML_COMPONENT_VAR SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY)
  49. set(FIND_SFML_COMPONENT_NAME ${FIND_SFML_LIB_PREFIX}${FIND_SFML_COMPONENT_LOWER}${FIND_SFML_LIB_SUFFIX})
  50. # release library
  51. find_library(${FIND_SFML_COMPONENT_VAR}
  52. NAMES ${FIND_SFML_COMPONENT_NAME}
  53. PATH_SUFFIXES lib64 lib
  54. PATHS ${FIND_SFML_LIB_PATHS})
  55. # debug library
  56. find_library(${FIND_SFML_COMPONENT_VAR}_DEBUG
  57. NAMES ${FIND_SFML_COMPONENT_NAME}-d
  58. PATH_SUFFIXES lib64 lib
  59. PATHS ${FIND_SFML_LIB_PATHS})
  60. set(SFML_LIBRARIES_NAMES ${SFML_LIBRARIES_NAMES} ${FIND_SFML_COMPONENT_VAR})
  61. set(SFML_LIBRARIES ${SFML_LIBRARIES} ${${FIND_SFML_COMPONENT_VAR}})
  62. endforeach()
  63. # handle the QUIETLY and REQUIRED arguments and set SFML_FOUND to TRUE if all listed variables are TRUE
  64. INCLUDE(FindPackageHandleStandardArgs)
  65. FIND_PACKAGE_HANDLE_STANDARD_ARGS(SFML DEFAULT_MSG SFML_INCLUDE_DIR ${SFML_LIBRARIES_NAMES})
  66. MARK_AS_ADVANCED(SFML_INCLUDE_DIR ${SFML_LIBRARIES_NAMES})