• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2020 Huawei Device Co., Ltd.
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#     http://www.apache.org/licenses/LICENSE-2.0
6# Unless required by applicable law or agreed to in writing, software
7# distributed under the License is distributed on an "AS IS" BASIS,
8# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9# See the License for the specific language governing permissions and
10# limitations under the License.
11
12if (defined(ohos_lite)) {
13  import("//build/lite/config/component/lite_component.gni")
14} else {
15  import("//build/ohos.gni")
16}
17config("freetype_config") {
18  defines = [ "FT2_BUILD_LIBRARY" ]
19  include_dirs = [ "${target_gen_dir}/freetype/include" ]
20}
21
22action("freetype_action") {
23  script = "//third_party/freetype/install.py"
24  outputs = [
25    "${target_gen_dir}/freetype/src/autofit/autofit.c",
26    "${target_gen_dir}/freetype/src/base/ftbase.c",
27    "${target_gen_dir}/freetype/src/base/ftbbox.c",
28    "${target_gen_dir}/freetype/src/base/ftbdf.c",
29    "${target_gen_dir}/freetype/src/base/ftbitmap.c",
30    "${target_gen_dir}/freetype/src/base/ftcid.c",
31    "${target_gen_dir}/freetype/src/base/ftdebug.c",
32    "${target_gen_dir}/freetype/src/base/ftfstype.c",
33    "${target_gen_dir}/freetype/src/base/ftgasp.c",
34    "${target_gen_dir}/freetype/src/base/ftglyph.c",
35    "${target_gen_dir}/freetype/src/base/ftgxval.c",
36    "${target_gen_dir}/freetype/src/base/ftinit.c",
37    "${target_gen_dir}/freetype/src/base/ftmm.c",
38    "${target_gen_dir}/freetype/src/base/ftotval.c",
39    "${target_gen_dir}/freetype/src/base/ftpatent.c",
40    "${target_gen_dir}/freetype/src/base/ftpfr.c",
41    "${target_gen_dir}/freetype/src/base/ftstroke.c",
42    "${target_gen_dir}/freetype/src/base/ftsynth.c",
43    "${target_gen_dir}/freetype/src/base/ftsystem.c",
44    "${target_gen_dir}/freetype/src/base/fttype1.c",
45    "${target_gen_dir}/freetype/src/base/ftwinfnt.c",
46    "${target_gen_dir}/freetype/src/bdf/bdf.c",
47    "${target_gen_dir}/freetype/src/cache/ftcache.c",
48    "${target_gen_dir}/freetype/src/cff/cff.c",
49    "${target_gen_dir}/freetype/src/cid/type1cid.c",
50    "${target_gen_dir}/freetype/src/gzip/ftgzip.c",
51    "${target_gen_dir}/freetype/src/lzw/ftlzw.c",
52    "${target_gen_dir}/freetype/src/pcf/pcf.c",
53    "${target_gen_dir}/freetype/src/pfr/pfr.c",
54    "${target_gen_dir}/freetype/src/psaux/psaux.c",
55    "${target_gen_dir}/freetype/src/pshinter/pshinter.c",
56    "${target_gen_dir}/freetype/src/psnames/psmodule.c",
57    "${target_gen_dir}/freetype/src/raster/raster.c",
58    "${target_gen_dir}/freetype/src/sdf/ftbsdf.c",
59    "${target_gen_dir}/freetype/src/sdf/ftsdf.c",
60    "${target_gen_dir}/freetype/src/sdf/ftsdfcommon.c",
61    "${target_gen_dir}/freetype/src/sdf/ftsdfrend.c",
62    "${target_gen_dir}/freetype/src/sfnt/sfnt.c",
63    "${target_gen_dir}/freetype/src/smooth/smooth.c",
64    "${target_gen_dir}/freetype/src/svg/ftsvg.c",
65    "${target_gen_dir}/freetype/src/truetype/truetype.c",
66    "${target_gen_dir}/freetype/src/type1/type1.c",
67    "${target_gen_dir}/freetype/src/type42/type42.c",
68    "${target_gen_dir}/freetype/src/winfonts/winfnt.c",
69  ]
70
71  inputs = [ "//third_party/freetype/freetype-2.12.1.tar.xz" ]
72  freetype_path = rebase_path("${target_gen_dir}", root_build_dir)
73  freetype_source_path = rebase_path("//third_party/freetype", root_build_dir)
74  args = [
75    "--gen-dir",
76    "$freetype_path",
77    "--source-dir",
78    "$freetype_source_path",
79  ]
80}
81
82if (defined(ohos_lite)) {
83  lite_library("freetype") {
84    if (ohos_kernel_type == "liteos_m") {
85      target_type = "static_library"
86    } else {
87      target_type = "shared_library"
88    }
89
90    freetype_sources = get_target_outputs(":freetype_action")
91
92    deps = [ "//third_party/libpng:libpng" ]
93    sources = freetype_sources
94    include_dirs = [
95      "${target_gen_dir}/freetype/src/base",
96      "//third_party/libpng",
97    ]
98
99    public_configs = [ ":freetype_config" ]
100    defines = [ "FT_CONFIG_OPTION_USE_PNG" ]
101
102    if (target_type == "static_library") {
103      deps += [ "//build/lite/config/component/zlib:zlib_static" ]
104      defines += [ "FT_CONFIG_OPTION_SYSTEM_ZLIB" ]
105    }
106    deps += [ ":freetype_action" ]
107    if (defined(board_toolchain_type) && board_toolchain_type == "iccarm") {
108      cflags = [
109        "--diag_suppress",
110        "Pa082,Pa084,Pa128,Pe128,Pa134,Pa137,Pe550",
111      ]
112      cflags_cc = cflags
113    }
114  }
115
116  lite_component("freetype_shared") {
117    features = [ ":freetype" ]
118  }
119} else {
120  ohos_static_library("freetype_static") {
121    sources = get_target_outputs(":freetype_action")
122    include_dirs = [ "${target_gen_dir}/freetype/src/base" ]
123    public_configs = [ ":freetype_config" ]
124    deps = [
125      ":freetype_action",
126      "//third_party/zlib:libz",
127    ]
128    defines = [ "FT_CONFIG_OPTION_SYSTEM_ZLIB" ]
129    if (current_os == "ohos") {
130      external_deps = [ "libpng:libpng" ]
131      defines += [ "FT_CONFIG_OPTION_USE_PNG" ]
132    }
133    part_name = "freetype"
134    subsystem_name = "thirdparty"
135  }
136}
137