FindHarfBuzz.cmake 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # Try to find HarfBuzz include and library directories.
  2. #
  3. # The following CMake variables are required:
  4. # HARFBUZZ_DIR - directories to search for the HarfBuzz source directory.
  5. # HARFBUZZ_LIB_DIRS - directories to search for the compiled HarfBuzz library.
  6. #
  7. # After a successful discovery, this will set the following:
  8. # HARFBUZZ_INCLUDE_DIR - directory containing the HarfBuzz header files.
  9. # HARFBUZZ_LIBRARY - the compiled HarfBuzz library.
  10. # In addition, the following IMPORTED target is created:
  11. # harfbuzz::harfbuzz
  12. # Look for the library in config mode first.
  13. find_package(harfbuzz CONFIG QUIET)
  14. if(TARGET harfbuzz::harfbuzz)
  15. message(STATUS "Found HarfBuzz in config mode.")
  16. set(HARFBUZZ_LIBRARY "harfbuzz::harfbuzz")
  17. return()
  18. else()
  19. message(STATUS "Looking for HarfBuzz in module mode.")
  20. endif()
  21. find_path(HARFBUZZ_INCLUDE_DIR
  22. NAMES hb.h
  23. HINTS ${HARFBUZZ_DIR}
  24. PATH_SUFFIXES harfbuzz)
  25. find_library(HARFBUZZ_LIBRARY
  26. NAMES harfbuzz
  27. HINTS ${HARFBUZZ_DIR} ${HARFBUZZ_LIB_DIRS})
  28. include(FindPackageHandleStandardArgs)
  29. find_package_handle_standard_args(HarfBuzz DEFAULT_MSG HARFBUZZ_LIBRARY HARFBUZZ_INCLUDE_DIR)
  30. if(HARFBUZZ_FOUND AND NOT TARGET harfbuzz::harfbuzz)
  31. add_library(harfbuzz::harfbuzz INTERFACE IMPORTED)
  32. set_target_properties(harfbuzz::harfbuzz PROPERTIES
  33. INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIR}"
  34. INTERFACE_LINK_LIBRARIES "${HARFBUZZ_LIBRARY}")
  35. endif()