xref: /aosp_15_r20/external/skia/modules/skshaper/BUILD.gn (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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    deps = [ "../..:skia" ]
32    defines = [ "SKSHAPER_IMPLEMENTATION=1" ]
33    sources = skia_shaper_primitive_sources
34    if (skia_use_fonthost_mac) {
35      sources += skia_shaper_coretext_sources
36      if (is_mac) {
37        frameworks = [ "ApplicationServices.framework" ]
38      }
39
40      if (is_ios) {
41        frameworks = [
42          "CoreFoundation.framework",
43          "CoreText.framework",
44        ]
45      }
46    }
47    if (skia_enable_skunicode) {
48      sources += skia_shaper_skunicode_sources
49      deps += [ "../skunicode" ]
50    }
51    if (skia_use_harfbuzz && skia_enable_skunicode) {
52      sources += skia_shaper_harfbuzz_sources
53      deps += [
54        "../skunicode",
55        "//third_party/harfbuzz",
56      ]
57    }
58    configs += [ "../../:skia_private" ]
59  }
60
61  if (defined(is_skia_standalone) && skia_enable_tools) {
62    skia_source_set("tests") {
63      if (skia_enable_skshaper_tests) {
64        testonly = true
65        sources = skia_shaper_tests
66        deps = [
67          ":skshaper",
68          "../..:skia",
69          "../..:test",
70          "../skunicode",
71        ]
72      } else {
73        sources = []
74      }
75    }
76  }
77} else {
78  group("skshaper") {
79  }
80  group("tests") {
81  }
82}
83