FindDraco.cmake 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Finddraco
  2. #
  3. # Locates draco and sets the following variables:
  4. #
  5. # draco_FOUND draco_INCLUDE_DIRS draco_LIBARY_DIRS draco_LIBRARIES
  6. # draco_VERSION_STRING
  7. #
  8. # draco_FOUND is set to YES only when all other variables are successfully
  9. # configured.
  10. unset(draco_FOUND)
  11. unset(draco_INCLUDE_DIRS)
  12. unset(draco_LIBRARY_DIRS)
  13. unset(draco_LIBRARIES)
  14. unset(draco_VERSION_STRING)
  15. mark_as_advanced(draco_FOUND)
  16. mark_as_advanced(draco_INCLUDE_DIRS)
  17. mark_as_advanced(draco_LIBRARY_DIRS)
  18. mark_as_advanced(draco_LIBRARIES)
  19. mark_as_advanced(draco_VERSION_STRING)
  20. set(draco_version_file_no_prefix "draco/src/draco/core/draco_version.h")
  21. # Set draco_INCLUDE_DIRS
  22. find_path(draco_INCLUDE_DIRS NAMES "${draco_version_file_no_prefix}")
  23. # Extract the version string from draco_version.h.
  24. if(draco_INCLUDE_DIRS)
  25. set(draco_version_file
  26. "${draco_INCLUDE_DIRS}/draco/src/draco/core/draco_version.h")
  27. file(STRINGS "${draco_version_file}" draco_version REGEX "kdracoVersion")
  28. list(GET draco_version 0 draco_version)
  29. string(REPLACE "static const char kdracoVersion[] = " "" draco_version
  30. "${draco_version}")
  31. string(REPLACE ";" "" draco_version "${draco_version}")
  32. string(REPLACE "\"" "" draco_version "${draco_version}")
  33. set(draco_VERSION_STRING ${draco_version})
  34. endif()
  35. # Find the library.
  36. if(BUILD_SHARED_LIBS)
  37. find_library(draco_LIBRARIES NAMES draco.dll libdraco.dylib libdraco.so)
  38. else()
  39. find_library(draco_LIBRARIES NAMES draco.lib libdraco.a)
  40. endif()
  41. # Store path to library.
  42. get_filename_component(draco_LIBRARY_DIRS ${draco_LIBRARIES} DIRECTORY)
  43. if(draco_INCLUDE_DIRS
  44. AND draco_LIBRARY_DIRS
  45. AND draco_LIBRARIES
  46. AND draco_VERSION_STRING)
  47. set(draco_FOUND YES)
  48. endif()