• 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/ability/ability_runtime/ability_runtime.gni")
16import("//foundation/arkui/ace_engine/ace_config.gni")
17import("//foundation/arkui/ace_engine/build/ace_ext.gni")
18
19# build static
20template("ace_osal_ohos_source_set") {
21  forward_variables_from(invoker, "*")
22
23  ohos_source_set(target_name) {
24    subsystem_name = ace_engine_subsystem
25    part_name = ace_engine_part
26    defines += invoker.defines
27    if (defined(vendor_configs.use_ext_surface) &&
28        vendor_configs.use_ext_surface) {
29      defines += [ "EXT_SURFACE_ENABLE" ]
30    }
31    if (is_ohos_standard_system) {
32      external_deps = [
33        "hilog:libhilog",
34        "hitrace:hitrace_meter",
35        "init:libbeget_proxy",
36        "init:libbegetutil",
37      ]
38      configs = [ "$ace_root:ace_config" ]
39    } else {
40      external_deps = [
41        "hilog:libhilog",
42        "hitrace:hitrace_meter",
43        "init:libbegetutil",
44      ]
45
46      configs = [ "$ace_root:ace_config" ]
47    }
48    include_dirs = [
49      "$ability_runtime_napi_path/inner/napi_common",
50      "//base/hiviewdfx/hicollie/interfaces/native/innerkits/include",
51      "//commonlibrary/c_utils/base/include",
52      "//foundation/window/window_manager/interfaces/innerkits",
53      "//foundation/graphic/graphic_2d/rosen/modules/2d_engine",
54      "//foundation/graphic/graphic_2d/rosen/modules/2d_engine/rosen_text/export",
55    ]
56
57    sources = [
58      "ace_checker.cpp",
59      "ace_engine_ext.cpp",
60      "ace_trace.cpp",
61      "anr_thread.cpp",
62      "app_bar_helper_impl.cpp",
63      "data_detector_adapter.cpp",
64      "data_detector_loader.cpp",
65      "data_detector_mgr.cpp",
66      "download_manager_ohos.cpp",
67      "event_report.cpp",
68      "exception_handler.cpp",
69      "frame_report.cpp",
70      "image_analyzer_loader.cpp",
71      "image_analyzer_mgr.cpp",
72      "layout_inspector.cpp",
73      "log_wrapper.cpp",
74      "modal_ui_extension_impl.cpp",
75      "ressched_report.cpp",
76      "socperf_client_impl.cpp",
77      "system_properties.cpp",
78      "trace_id_impl.cpp",
79      "view_data_wrap_ohos.cpp",
80      "want_wrap_ohos.cpp",
81    ]
82
83    external_deps += [
84      "ability_runtime:app_manager",
85      "i18n:intl_util",
86      "init:libbegetutil",
87    ]
88
89    if (is_ohos_standard_system) {
90      sources += [
91        "resource_adapter_impl.cpp",
92        "resource_adapter_impl_v2.cpp",
93        "resource_convertor.cpp",
94        "resource_theme_style.cpp",
95      ]
96      deps = [ "$skia_root_new:skia_ohos" ]
97
98      if (defined(global_parts_info) &&
99          defined(global_parts_info.resourceschedule_soc_perf)) {
100        external_deps += [ "soc_perf:socperf_client" ]
101        defines += [ "SOC_PERF_ENABLE" ]
102      }
103
104      if (defined(resourceschedule_ffrt_support) &&
105          resourceschedule_ffrt_support) {
106        sources += [ "long_frame_report_impl.cpp" ]
107        external_deps += [ "ffrt:libffrt" ]
108      }
109
110      external_deps += [
111        "ability_base:view_data",
112        "ability_base:want",
113        "ability_runtime:abilitykit_native",
114        "image_framework:image",
115        "input:libmmi-client",
116        "napi:ace_napi",
117        "resource_management:global_resmgr",
118      ]
119      if (defined(config.accessibility_support) &&
120          config.accessibility_support) {
121        sources += [ "js_accessibility_manager.cpp" ]
122        deps += [ "$ace_root/frameworks/bridge/common/accessibility:bridge_accessibility_$platform" ]
123        external_deps += [
124          "accessibility:accessibilityclient",
125          "accessibility:accessibilityconfig",
126        ]
127      } else {
128        sources += [ "fake_accessibility_manager.cpp" ]
129      }
130      if (frame_trace_support) {
131        include_dirs += [ "//foundation/resourceschedule/frame_aware_sched/interfaces/innerkits/frameintf" ]
132        sources += [ "frame_trace_adapter_impl.cpp" ]
133        external_deps += [ "frame_aware_sched:frame_trace_intf" ]
134      } else {
135        sources += [ "frame_trace_adapter_fake_impl.cpp" ]
136      }
137    } else {
138      external_deps += [ "multimedia_image:image" ]
139    }
140    sources += [
141      "file_uri_helper_ohos.cpp",
142      "image_source_ohos.cpp",
143      "input_manager.cpp",
144      "mouse_style_ohos.cpp",
145      "page_url_checker_ohos.cpp",
146      "pixel_map_ohos.cpp",
147    ]
148    external_deps += [
149      "ability_runtime:abilitykit_native",
150      "ability_runtime:app_manager",
151      "app_file_service:fileuri_native",
152      "bundle_framework:appexecfwk_core",
153      "graphic_2d:librender_service_client",
154      "hicollie:libhicollie",
155      "hisysevent:libhisysevent",
156      "hitrace:libhitracechain",
157      "safwk:system_ability_fwk",
158      "samgr:samgr_proxy",
159      "window_manager:libdm",
160      "window_manager:scene_session",
161    ]
162
163    if (defined(config.hichecker_exists) && config.hichecker_exists) {
164      external_deps += [ "hichecker:libhichecker" ]
165    }
166    deps += [
167      "$ace_root/interfaces/inner_api/drawable_descriptor:drawable_descriptor",
168    ]
169
170    if (ability_runtime_graphics) {
171      external_deps += [ "image_framework:image_native" ]
172    }
173  }
174}
175
176foreach(item, ace_platforms) {
177  platform = item.name
178  if (platform == "ohos" || platform == "ohos_ng") {
179    ace_osal_ohos_source_set("ace_osal_ohos_${platform}") {
180      platform = item.name
181      assert(defined(platform) && platform != "", "platform must be defined")
182      defines = []
183      config = {
184      }
185
186      if (defined(item.config)) {
187        config = item.config
188      }
189      if (defined(config.defines)) {
190        defines = config.defines
191      }
192    }
193  }
194}
195