• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2023 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#
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
17template("build_component") {
18  forward_variables_from(invoker, "*")
19
20  component_name = target_name
21
22  template("build_component_impl") {
23    forward_variables_from(invoker, "*")
24
25    platform = target_name
26
27    component_deps = []
28    extra_deps = []
29    foreach(item, component_deps) {
30      extra_deps += [ "$ace_root/frameworks/core/components/${item}:ace_core_components_${item}_${platform}" ]
31    }
32
33    if (defined(platform_deps)) {
34      foreach(item, platform_deps) {
35        extra_deps += [ "${item}_${platform}" ]
36      }
37    }
38
39    if (defined(deps)) {
40      extra_deps += deps
41    }
42
43    ohos_source_set("ace_core_components_${component_name}_${platform}") {
44      defines += invoker.defines
45
46      sources = []
47      sources += invoker.sources
48
49      configs = []
50      configs += [ "$ace_root:ace_config" ]
51
52      if (defined(invoker.configs)) {
53        configs += invoker.configs
54      }
55
56      deps = []
57      deps += extra_deps
58      deps += [ "$ace_root/frameworks/core/components/theme:build_theme_code" ]
59
60      if (enable_ng_build) {
61        deps += [
62          "$ace_flutter_engine_root_new:third_party_flutter_engine_dev_$platform",
63          "$ace_flutter_engine_root_new/third_party/skia:ace_skia_dev_$platform",
64        ]
65      } else {
66        deps += [
67          "$ace_flutter_engine_root:third_party_flutter_engine_$platform",
68          "$ace_flutter_engine_root/skia:ace_skia_$platform",
69        ]
70      }
71
72      if (defined(invoker.public_configs)) {
73        public_configs = []
74        public_configs += invoker.public_configs
75      }
76
77      if (defined(invoker.aosp_deps)) {
78        aosp_deps = []
79        aosp_deps += invoker.aosp_deps
80      }
81
82      if (defined(invoker.external_deps)) {
83        external_deps = []
84        external_deps += invoker.external_deps
85      }
86
87      if (defined(invoker.external_deps_info)) {
88        external_deps_info = []
89        external_deps_info += invoker.external_deps_info
90      }
91
92      if (defined(invoker.cflags_cc)) {
93        cflags_cc = []
94        cflags_cc += invoker.cflags_cc
95      }
96
97      if (defined(invoker.public_deps)) {
98        public_deps = []
99        public_deps += invoker.public_deps
100      }
101
102      if (defined(invoker.component_defines)) {
103        defines += invoker.component_defines
104      }
105
106      if (defined(config.enable_standard_input) &&
107          config.enable_standard_input) {
108        if (defined(invoker.standard_input_sources)) {
109          sources += invoker.standard_input_sources
110        }
111        if (defined(invoker.standard_input_deps)) {
112          if (defined(external_deps)) {
113            external_deps += invoker.standard_input_deps
114          } else {
115            external_deps = invoker.standard_input_deps
116          }
117        }
118      }
119
120      if (defined(config.web_components_support) &&
121          config.web_components_support && is_standard_system) {
122        if (defined(invoker.standard_web_configs)) {
123          configs += invoker.standard_web_configs
124        }
125        if (defined(invoker.standard_web_deps)) {
126          if (defined(external_deps)) {
127            external_deps += invoker.standard_web_deps
128          } else {
129            external_deps = invoker.standard_web_deps
130          }
131        }
132      }
133
134      if (defined(config.enable_rosen_backend) && config.enable_rosen_backend &&
135          defined(invoker.rosen_sources)) {
136        sources += invoker.rosen_sources
137        deps += [ "//foundation/graphic/graphic_2d/rosen/modules/render_service_client:librender_service_client" ]
138      }
139      part_name = ace_engine_part
140      subsystem_name = ace_engine_subsystem
141    }
142  }
143
144  foreach(item, ace_platforms) {
145    build_component_impl(item.name) {
146      platform = item.name
147      defines = []
148
149      if (defined(item.config)) {
150        config = item.config
151      } else {
152        config = {
153        }
154      }
155
156      if (defined(config.defines)) {
157        defines += config.defines
158      }
159
160      if (defined(config.cflags_cc)) {
161        cflags_cc = config.cflags_cc
162      } else {
163        cflags_cc = []
164      }
165    }
166  }
167}
168