You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.0 KiB

  1. find_path( GLM_INCLUDE_DIR glm/glm.hpp
  2. PATHS ${GLM_ROOT_DIR} $ENV{GLM_ROOT_DIR}
  3. DOC "GLM library header path."
  4. )
  5. if( NOT ${GLM_INCLUDE_DIR} STREQUAL "GLM_INCLUDE_DIR-NOTFOUND" )
  6. # attempt to extract the GLM Version information from setup.hpp
  7. find_file( GLM_SETUP setup.hpp
  8. PATHS ${GLM_INCLUDE_DIR}
  9. PATH_SUFFIXES glm/core glm/detail
  10. NO_DEFAULT_PATH )
  11. if( NOT ${GLM_SETUP} STREQUAL "GLM_SETUP-NOTFOUND" )
  12. # extract the "#define GLM_VERSION*" lines
  13. file( STRINGS ${GLM_SETUP} _version REGEX "^#define.*GLM_VERSION.*" )
  14. foreach( SVAR ${_version} )
  15. string( REGEX MATCH GLM_VERSION_[M,A,J,O,R,I,N,P,T,C,H,E,V,I,S]* _VARNAME ${SVAR} )
  16. string( REGEX MATCH [0-9]+ _VALUE ${SVAR} )
  17. if( NOT ${_VARNAME} STREQUAL "" AND NOT ${_VALUE} STREQUAL "" )
  18. set( _${_VARNAME} ${_VALUE} )
  19. endif()
  20. endforeach()
  21. #ensure that NOT GLM_VERSION* will evaluate to '0'
  22. if( NOT _GLM_VERSION_MAJOR )
  23. set( _GLM_VERSION_MAJOR 0 )
  24. endif()
  25. if( NOT _GLM_VERSION_MINOR )
  26. set( _GLM_VERSION_MINOR 0 )
  27. endif()
  28. if( NOT _GLM_VERSION_PATCH )
  29. set( _GLM_VERSION_PATCH 0 )
  30. endif()
  31. if( NOT _GLM_VERSION_REVISION )
  32. set( _GLM_VERSION_REVISION 0 )
  33. endif()
  34. set( GLM_VERSION ${_GLM_VERSION_MAJOR}.${_GLM_VERSION_MINOR}.${_GLM_VERSION_PATCH}.${_GLM_VERSION_REVISION} )
  35. unset( GLM_SETUP CACHE )
  36. endif()
  37. endif()
  38. include( FindPackageHandleStandardArgs )
  39. FIND_PACKAGE_HANDLE_STANDARD_ARGS( GLM
  40. REQUIRED_VARS
  41. GLM_INCLUDE_DIR
  42. GLM_VERSION
  43. VERSION_VAR GLM_VERSION )
  44. mark_as_advanced( GLM_INCLUDE_DIR )
  45. set( GLM_VERSION_MAJOR ${_GLM_VERSION_MAJOR} CACHE INTERNAL "" )
  46. set( GLM_VERSION_MINOR ${_GLM_VERSION_MINOR} CACHE INTERNAL "" )
  47. set( GLM_VERSION_PATCH ${_GLM_VERSION_PATCH} CACHE INTERNAL "" )
  48. set( GLM_VERSION_TWEAK ${_GLM_VERSION_REVISION} CACHE INTERNAL "" )