skia.cmake 1020 B

12345678910111213141516171819202122232425
  1. include_guard()
  2. find_package(unofficial-skia CONFIG)
  3. if(unofficial-skia_FOUND)
  4. set(SKIA_TARGET unofficial::skia::skia)
  5. else()
  6. find_package(PkgConfig)
  7. # Get skia version from vcpkg.json
  8. file(READ ${LADYBIRD_SOURCE_DIR}/vcpkg.json VCPKG_DOT_JSON)
  9. string(JSON VCPKG_OVERRIDES_LENGTH LENGTH ${VCPKG_DOT_JSON} overrides)
  10. MATH(EXPR VCPKG_OVERRIDES_END_RANGE "${VCPKG_OVERRIDES_LENGTH}-1")
  11. foreach(IDX RANGE ${VCPKG_OVERRIDES_END_RANGE})
  12. string(JSON VCPKG_OVERRIDE_NAME GET ${VCPKG_DOT_JSON} overrides ${IDX} name)
  13. if(VCPKG_OVERRIDE_NAME STREQUAL "skia")
  14. string(JSON SKIA_REQUIRED_VERSION GET ${VCPKG_DOT_JSON} overrides ${IDX} version)
  15. string(REGEX MATCH "[0-9]+" SKIA_REQUIRED_VERSION ${SKIA_REQUIRED_VERSION})
  16. endif()
  17. endforeach()
  18. pkg_check_modules(skia skia=${SKIA_REQUIRED_VERSION} REQUIRED IMPORTED_TARGET skia)
  19. set(SKIA_TARGET PkgConfig::skia)
  20. endif()
  21. swizzle_target_properties_for_swift(${SKIA_TARGET})
  22. add_library(skia ALIAS ${SKIA_TARGET})