• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2022 Huawei Device Co., Ltd.. All rights reserved.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("//foundation/arkui/ace_engine/ace_config.gni")
16
17config("libsfntly_compile_flags") {
18  cflags_cc = [
19    "-std=c++14",
20    "-fno-exceptions",
21    "-fno-rtti",
22    "-fvisibility-inlines-hidden",
23    "-Os",
24  ]
25
26  cflags = [
27    "-w",
28    "-fstrict-aliasing",
29    "-Os",
30    "-fdata-sections",
31    "-ffunction-sections",
32    "-gline-tables-only",
33    "-funwind-tables",
34    "-Wno-unused-parameter",
35    "-fvisibility=hidden",
36  ]
37}
38
39config("libsfntly_configs") {
40  include_dirs = [ "$flutter_root/skia/third_party/externals/sfntly/cpp/src" ]
41}
42
43template("ace_libsfntly") {
44  forward_variables_from(invoker, "*")
45
46  ohos_source_set(target_name) {
47    defines += invoker.defines
48    defines += [
49      "SFNTLY_NO_EXCEPTION",
50      "U_USING_ICU_NAMESPACE=0",
51      "SK_USING_THIRD_PARTY_ICU",
52    ]
53    configs = [ ":libsfntly_compile_flags" ]
54    public_configs = [ ":libsfntly_configs" ]
55
56    if (platform == "android") {
57      configs += [ "$ace_root/build:reduce_eh_frame_config" ]
58    }
59
60    sources = [
61      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sample/chromium/font_subsetter.cc",
62      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sample/chromium/subsetter_impl.cc",
63      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/byte_array.cc",
64      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/font_data.cc",
65      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/font_input_stream.cc",
66      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/font_output_stream.cc",
67      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/growable_memory_byte_array.cc",
68      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/memory_byte_array.cc",
69      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/readable_font_data.cc",
70      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/data/writable_font_data.cc",
71      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/font.cc",
72      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/font_factory.cc",
73      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/port/file_input_stream.cc",
74      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/port/lock.cc",
75      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/port/memory_input_stream.cc",
76      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/port/memory_output_stream.cc",
77      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/big_glyph_metrics.cc",
78      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/bitmap_glyph.cc",
79      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/bitmap_glyph_info.cc",
80      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/bitmap_size_table.cc",
81      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/composite_bitmap_glyph.cc",
82      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/ebdt_table.cc",
83      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/eblc_table.cc",
84      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/ebsc_table.cc",
85      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/glyph_metrics.cc",
86      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/index_sub_table.cc",
87      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/index_sub_table_format1.cc",
88      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/index_sub_table_format2.cc",
89      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/index_sub_table_format3.cc",
90      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/index_sub_table_format4.cc",
91      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/index_sub_table_format5.cc",
92      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/simple_bitmap_glyph.cc",
93      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/bitmap/small_glyph_metrics.cc",
94      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/byte_array_table_builder.cc",
95      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/cmap_table.cc",
96      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/font_header_table.cc",
97      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/horizontal_device_metrics_table.cc",
98      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/horizontal_header_table.cc",
99      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/horizontal_metrics_table.cc",
100      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/maximum_profile_table.cc",
101      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/name_table.cc",
102      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/core/os2_table.cc",
103      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/font_data_table.cc",
104      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/generic_table_builder.cc",
105      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/header.cc",
106      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/subtable.cc",
107      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/table.cc",
108      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/table_based_table_builder.cc",
109      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/truetype/glyph_table.cc",
110      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/table/truetype/loca_table.cc",
111      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/tag.cc",
112      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/tools/subsetter/glyph_table_subsetter.cc",
113      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/tools/subsetter/subsetter.cc",
114      "$flutter_root/skia/third_party/externals/sfntly/cpp/src/sfntly/tools/subsetter/table_subsetter_impl.cc",
115    ]
116
117    if (platform == "windows") {
118      libs = [ "pthread" ]
119    }
120
121    deps = [ "$ace_flutter_engine_root/icu:ace_libicu_$platform" ]
122  }
123}
124
125foreach(item, ace_platforms) {
126  ace_libsfntly("ace_libsfntly_" + item.name) {
127    platform = item.name
128    defines = []
129    config = {
130    }
131
132    if (defined(item.config)) {
133      config = item.config
134    }
135
136    if (defined(config.defines)) {
137      defines = config.defines
138    }
139  }
140}
141