1# Copyright 2018 Google Inc. 2# 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import("../../gn/skia.gni") 7import("skshaper.gni") 8 9if (skia_enable_skshaper) { 10 config("public_config") { 11 include_dirs = [ "include" ] 12 defines = [ "SK_SHAPER_PRIMITIVE_AVAILABLE" ] 13 if (is_component_build) { 14 defines += [ "SKSHAPER_DLL" ] 15 } 16 if (skia_use_fonthost_mac) { 17 defines += [ "SK_SHAPER_CORETEXT_AVAILABLE" ] 18 } 19 if (skia_use_harfbuzz) { 20 defines += [ "SK_SHAPER_HARFBUZZ_AVAILABLE" ] 21 } 22 if (skia_enable_skunicode) { 23 defines += [ "SK_SHAPER_UNICODE_AVAILABLE" ] 24 } 25 } 26 27 component("skshaper") { 28 check_includes = false 29 public_configs = [ ":public_config" ] 30 public = skia_shaper_public 31 if (!use_oh_skia) { 32 deps = [ "../..:skia" ] 33 } else { 34 include_dirs = [ "${skia_root_dir}" ] 35 deps = [] 36 } 37 defines = [ "SKSHAPER_IMPLEMENTATION=1" ] 38 sources = skia_shaper_primitive_sources 39 if (skia_use_fonthost_mac) { 40 sources += skia_shaper_coretext_sources 41 if (is_mac) { 42 frameworks = [ "ApplicationServices.framework" ] 43 } 44 45 if (is_ios) { 46 frameworks = [ 47 "CoreFoundation.framework", 48 "CoreText.framework", 49 ] 50 } 51 } 52 if (skia_enable_skunicode) { 53 sources += skia_shaper_skunicode_sources 54 if (!use_oh_skia) { 55 deps += [ "../skunicode" ] 56 } else { 57 defines += [ 58 "SK_UNICODE_AVAILABLE", 59 "SK_UNICODE_ICU_IMPLEMENTATION", 60 ] 61 } 62 } 63 if (skia_use_harfbuzz && skia_enable_skunicode) { 64 sources += skia_shaper_harfbuzz_sources 65 if (!use_oh_skia) { 66 deps += [ 67 "../skunicode", 68 "${skia_third_party_dir}/harfbuzz", 69 ] 70 } else { 71 if (skia_use_system_lib) { 72 external_deps = [ "harfbuzz:harfbuzz_static_for_skia" ] 73 } else { 74 deps += [ "${skia_third_party_dir}/harfbuzz" ] 75 } 76 } 77 } 78 configs += [ "../../:skia_private" ] 79 } 80 81 if (defined(is_skia_standalone) && skia_enable_tools) { 82 skia_source_set("tests") { 83 if (skia_enable_skshaper_tests) { 84 testonly = true 85 sources = skia_shaper_tests 86 deps = [ 87 ":skshaper", 88 "../..:skia", 89 "../..:test", 90 "../skunicode", 91 ] 92 } else { 93 sources = [] 94 } 95 if (is_ohos) { 96 external_deps = [ "hitrace:hitrace_meter" ] 97 if (!build_ohos_sdk && !is_arkui_x) { 98 external_deps += [ "init:libbegetutil" ] 99 if (defined(defines)) { 100 defines += [ "NOT_BUILD_FOR_OHOS_SDK" ] 101 } else { 102 defines = [ "NOT_BUILD_FOR_OHOS_SDK" ] 103 } 104 } 105 } 106 if (is_arkui_x) { 107 deps += [ "//third_party/bounds_checking_function:libsec_static" ] 108 } else if (is_ohos) { 109 if (is_component_build) { 110 external_deps += [ "bounds_checking_function:libsec_shared" ] 111 } else { 112 external_deps += [ "bounds_checking_function:libsec_static" ] 113 } 114 } 115 } 116 } 117} else { 118 group("skshaper") { 119 } 120 group("tests") { 121 } 122} 123