FindSFML.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. find_path(SFML_INCLUDE_DIR Config.hpp
  2. HINTS
  3. ENV SFML_DIR
  4. PATH_SUFFIXES SFML
  5. # path suffixes to search inside ENV{SFML_DIR}
  6. include/SFML include
  7. )
  8. find_library(SFML_SYSTEM_LIBRARY
  9. NAMES sfml-system
  10. HINTS
  11. ENV SFML_DIR
  12. PATH_SUFFIXES lib
  13. )
  14. find_library(SFML_GRAPHICS_LIBRARY
  15. NAMES sfml-graphics
  16. HINTS
  17. ENV SFML_DIR
  18. PATH_SUFFIXES lib
  19. )
  20. find_library(SFML_WINDOW_LIBRARY
  21. NAMES sfml-window
  22. HINTS
  23. ENV SFML_DIR
  24. PATH_SUFFIXES lib
  25. )
  26. if(SFML_INCLUDE_DIR AND EXISTS "${SFML_INCLUDE_DIR}/Config.hpp")
  27. file(STRINGS "${SFML_INCLUDE_DIR}/Config.hpp" SFML_VERSION_MAJOR_LINE REGEX "^#define[ \t]+SFML_VERSION_MAJOR[ \t]+[0-9]+$")
  28. file(STRINGS "${SFML_INCLUDE_DIR}/Config.hpp" SFML_VERSION_MINOR_LINE REGEX "^#define[ \t]+SFML_VERSION_MINOR[ \t]+[0-9]+$")
  29. string(REGEX REPLACE "^#define[ \t]+SFML_VERSION_MAJOR[ \t]+([0-9]+)$" "\\1" SFML_MAJOR_VERSION "${SFML_VERSION_MAJOR_LINE}")
  30. string(REGEX REPLACE "^#define[ \t]+SFML_VERSION_MINOR[ \t]+([0-9]+)$" "\\1" SFML_MINOR_VERSION "${SFML_VERSION_MINOR_LINE}")
  31. unset(SFML_VERSION_MAJOR_LINE)
  32. unset(SFML_VERSION_MINOR_LINE)
  33. set(SFML_VERSION_STRING ${SFML_MAJOR_VERSION}.${SFML_MINOR_VERSION})
  34. endif()
  35. include(FindPackageHandleStandardArgs)
  36. if(SFML_MAJOR_VERSION GREATER 1)
  37. set(SFML2_MAJOR_VERSION ${SFML_MAJOR_VERSION})
  38. set(SFML2_MINOR_VERSION ${SFML_MINOR_VERSION})
  39. set(SFML2_VERSION_STRING ${SFML2_MAJOR_VERSION}.${SFML2_MINOR_VERSION})
  40. set(SFML2_INCLUDE_DIR ${SFML_INCLUDE_DIR})
  41. set(SFML2_GRAPHICS_LIBRARY ${SFML_GRAPHICS_LIBRARY})
  42. set(SFML2_SYSTEM_LIBRARY ${SFML_SYSTEM_LIBRARY})
  43. set(SFML2_WINDOW_LIBRARY ${SFML_WINDOW_LIBRARY})
  44. FIND_PACKAGE_HANDLE_STANDARD_ARGS(SFML2
  45. REQUIRED_VARS SFML2_SYSTEM_LIBRARY SFML2_GRAPHICS_LIBRARY SFML2_WINDOW_LIBRARY SFML2_INCLUDE_DIR
  46. VERSION_VAR SFML2_VERSION_STRING
  47. )
  48. else()
  49. FIND_PACKAGE_HANDLE_STANDARD_ARGS(SFML
  50. REQUIRED_VARS SFML_SYSTEM_LIBRARY SFML_GRAPHICS_LIBRARY SFML_WINDOW_LIBRARY SFML_INCLUDE_DIR
  51. VERSION_VAR SFML_VERSION_STRING
  52. )
  53. endif()