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/form_fwk/form_fwk.gni")
16
17################################### libfms ########################################
18config("formmgr_log_config") {
19  defines = [ "FMS_LOG_TAG = \"FormManagerService\"" ]
20}
21
22config("formmgr_config") {
23  include_dirs = [
24    "services/config",
25    "services/include",
26  ]
27}
28
29ohos_shared_library("libfms") {
30  branch_protector_ret = "pac_ret"
31
32  sanitize = {
33    cfi = true
34    cfi_cross_dso = true
35    debug = false
36  }
37
38  shlib_type = "sa"
39  version_script = "libfms.map"
40  cflags_cc = []
41  include_dirs =
42      [ "${form_fwk_napi_path}/form_host/form_state_observer/include" ]
43
44  sources = [
45    "services/config/form_resource_param.cpp",
46    "services/config/form_xml_parser.cpp",
47    "services/src/form_ability_connection.cpp",
48    "services/src/form_ability_connection_reporter.cpp",
49    "services/src/form_acquire_connection.cpp",
50    "services/src/form_acquire_data_connection.cpp",
51    "services/src/form_acquire_state_connection.cpp",
52    "services/src/form_ams_helper.cpp",
53    "services/src/form_background_connection.cpp",
54    "services/src/form_batch_delete_connection.cpp",
55    "services/src/form_bms_helper.cpp",
56    "services/src/form_bundle_event_callback.cpp",
57    "services/src/form_bundle_forbid_mgr.cpp",
58    "services/src/form_cache_mgr.cpp",
59    "services/src/form_cast_temp_connection.cpp",
60    "services/src/form_data_mgr.cpp",
61    "services/src/form_data_proxy_mgr.cpp",
62    "services/src/form_data_proxy_record.cpp",
63    "services/src/form_db_cache.cpp",
64    "services/src/form_db_info.cpp",
65    "services/src/form_delete_connection.cpp",
66    "services/src/form_distributed_client.cpp",
67    "services/src/form_dump_mgr.cpp",
68    "services/src/form_ecological_rule_service.cpp",
69    "services/src/form_event_handler.cpp",
70    "services/src/form_event_notify_connection.cpp",
71    "services/src/form_event_report.cpp",
72    "services/src/form_event_util.cpp",
73    "services/src/form_free_install_operator.cpp",
74    "services/src/form_host_callback.cpp",
75    "services/src/form_host_record.cpp",
76    "services/src/form_info_mgr.cpp",
77    "services/src/form_info_rdb_storage_mgr.cpp",
78    "services/src/form_info_storage.cpp",
79    "services/src/form_item_info.cpp",
80    "services/src/form_mgr_adapter.cpp",
81    "services/src/form_mgr_service.cpp",
82    "services/src/form_msg_event_connection.cpp",
83    "services/src/form_observer_record.cpp",
84    "services/src/form_provider_mgr.cpp",
85    "services/src/form_rdb_data_mgr.cpp",
86    "services/src/form_record_report.cpp",
87    "services/src/form_refresh_connection.cpp",
88    "services/src/form_refresh_limiter.cpp",
89    "services/src/form_render_connection.cpp",
90    "services/src/form_render_mgr.cpp",
91    "services/src/form_render_mgr_inner.cpp",
92    "services/src/form_report.cpp",
93    "services/src/form_resource_observer.cpp",
94    "services/src/form_router_proxy_mgr.cpp",
95    "services/src/form_sandbox_render_mgr_inner.cpp",
96    "services/src/form_serial_queue.cpp",
97    "services/src/form_share_connection.cpp",
98    "services/src/form_share_mgr.cpp",
99    "services/src/form_supply_callback.cpp",
100    "services/src/form_sys_event_receiver.cpp",
101    "services/src/form_systemload_listener.cpp",
102    "services/src/form_task_mgr.cpp",
103    "services/src/form_timer_mgr.cpp",
104    "services/src/form_trust_mgr.cpp",
105    "services/src/form_util.cpp",
106    "services/src/free_install_status_callback_proxy.cpp",
107    "services/src/free_install_status_callback_stub.cpp",
108    "services/src/mem_status_listener.cpp",
109  ]
110
111  configs = [
112    ":formmgr_config",
113    ":formmgr_log_config",
114    ":formmgr_sdk_config",
115  ]
116  cflags = []
117  if (target_cpu == "arm") {
118    cflags += [ "-DBINDER_IPC_32BIT" ]
119  }
120
121  deps = [
122    ":form_config",
123    ":form_manager",
124  ]
125
126  external_deps = [
127    "ability_base:base",
128    "ability_base:configuration",
129    "ability_base:want",
130    "ability_base:zuri",
131    "ability_runtime:ability_context_native",
132    "ability_runtime:ability_deps_wrapper",
133    "ability_runtime:ability_manager",
134    "ability_runtime:abilitykit_native",
135    "ability_runtime:app_manager",
136    "ability_runtime:appkit_native",
137    "ability_runtime:mission_info",
138    "ability_runtime:wantagent_innerkits",
139    "access_token:libaccesstoken_sdk",
140    "access_token:libtokenid_sdk",
141    "bundle_framework:appexecfwk_base",
142    "bundle_framework:appexecfwk_core",
143    "c_utils:utils",
144    "common_event_service:cesfwk_core",
145    "common_event_service:cesfwk_innerkits",
146    "data_share:datashare_common",
147    "data_share:datashare_consumer",
148    "eventhandler:libeventhandler",
149    "faultloggerd:libbacktrace_local",
150    "faultloggerd:libdfx_dumpcatcher",
151    "ffrt:libffrt",
152    "hicollie:libhicollie",
153    "hilog:libhilog",
154    "hisysevent:libhisysevent",
155    "hitrace:hitrace_meter",
156    "init:libbegetutil",
157    "ipc:ipc_core",
158    "kv_store:distributeddata_inner",
159    "libxml2:libxml2",
160    "os_account:os_account_innerkits",
161    "relational_store:native_rdb",
162    "resource_management:global_resmgr",
163    "safwk:system_ability_fwk",
164    "samgr:samgr_proxy",
165    "time_service:time_client",
166  ]
167
168  if (cite_memmgr) {
169    external_deps += [ "memmgr:memmgrclient" ]
170    cflags_cc += [ "-DMEM_MGR_ENABLE" ]
171  }
172
173  if (theme_mgr_enable) {
174    external_deps += [ "theme_mgr:theme_manager_client" ]
175    cflags_cc += [ "-DTHEME_MGR_ENABLE" ]
176  }
177
178  defines = []
179  if (form_runtime_power) {
180    defines = [ "SUPPORT_POWER" ]
181    external_deps += [ "power_manager:powermgr_client" ]
182  }
183
184  if (device_usage_statistics) {
185    external_deps += [ "device_usage_statistics:usagestatsinner" ]
186    defines += [ "DEVICE_USAGE_STATISTICS_ENABLE" ]
187  }
188
189  if (res_schedule_service) {
190    external_deps += [ "resource_schedule_service:ressched_client" ]
191    defines += [ "RES_SCHEDULE_ENABLE" ]
192  }
193
194  if (build_variant == "root") {
195    defines += [ "FORM_EVENT_FOR_TEST" ]
196  }
197
198  subsystem_name = "ability"
199  part_name = "form_fwk"
200}
201
202################################### fmskit_native ########################################
203config("fmskit_config") {
204  defines = [ "FMS_LOG_TAG = \"FmskitNative\"" ]
205}
206
207config("fmskit_public_config") {
208  include_dirs = [
209    "interfaces/kits/native/include",
210    "interfaces/inner_api/include",
211  ]
212}
213
214ohos_shared_library("fmskit_native") {
215  configs = [ ":fmskit_config" ]
216  public_configs = [ ":fmskit_public_config" ]
217  sources = [
218    "interfaces/kits/native/src/form_caller_mgr.cpp",
219    "interfaces/kits/native/src/form_errors.cpp",
220    "interfaces/kits/native/src/form_host_caller.cpp",
221    "interfaces/kits/native/src/form_host_client.cpp",
222    "interfaces/kits/native/src/form_mgr.cpp",
223    "interfaces/kits/native/src/form_provider_caller.cpp",
224  ]
225
226  cflags = []
227  if (target_cpu == "arm") {
228    cflags += [ "-DBINDER_IPC_32BIT" ]
229  }
230
231  deps = [ ":form_manager" ]
232
233  external_deps = [
234    "ability_base:want",
235    "c_utils:utils",
236    "eventhandler:libeventhandler",
237    "hilog:libhilog",
238    "hitrace:hitrace_meter",
239    "ipc:ipc_core",
240    "samgr:samgr_proxy",
241  ]
242
243  public_external_deps = [
244    "ability_runtime:abilitykit_native",
245    "bundle_framework:appexecfwk_base",
246  ]
247
248  subsystem_name = "ability"
249  innerapi_tags = [ "platformsdk" ]
250  part_name = "form_fwk"
251}
252
253################################### fmskit_provider_client ########################################
254config("fmskit_provider_config") {
255  defines = [ "FMS_LOG_TAG = \"FmskitNative\"" ]
256}
257
258config("fmskit_provider_public_config") {
259  include_dirs = [
260    "interfaces/kits/native/include",
261    "interfaces/inner_api/include",
262  ]
263}
264
265ohos_shared_library("fmskit_provider_client") {
266  configs = [ ":fmskit_provider_config" ]
267  public_configs = [ ":fmskit_provider_public_config" ]
268  sources = [ "interfaces/kits/native/src/form_provider_client.cpp" ]
269
270  cflags = []
271  if (target_cpu == "arm") {
272    cflags += [ "-DBINDER_IPC_32BIT" ]
273  }
274
275  deps = [
276    ":fmskit_native",
277    ":form_manager",
278  ]
279
280  external_deps = [
281    "ability_base:want",
282    "ability_runtime:abilitykit_native",
283    "c_utils:utils",
284    "eventhandler:libeventhandler",
285    "hilog:libhilog",
286    "hitrace:hitrace_meter",
287    "ipc:ipc_core",
288    "napi:ace_napi",
289    "samgr:samgr_proxy",
290  ]
291
292  subsystem_name = "ability"
293  innerapi_tags = [ "platformsdk" ]
294  part_name = "form_fwk"
295}
296
297################################### form_manager ########################################
298config("formmgr_sdk_config") {
299  visibility = [ ":*" ]
300  include_dirs = [ "interfaces/inner_api/include/" ]
301  cflags = []
302  if (target_cpu == "arm") {
303    cflags += [ "-DBINDER_IPC_32BIT" ]
304  }
305}
306
307ohos_shared_library("form_manager") {
308  branch_protector_ret = "pac_ret"
309
310  include_dirs = []
311
312  sources = [
313    "interfaces/inner_api/src/form_ashmem.cpp",
314    "interfaces/inner_api/src/form_ecological_rule_param.cpp",
315    "interfaces/inner_api/src/form_host_delegate_proxy.cpp",
316    "interfaces/inner_api/src/form_host_delegate_stub.cpp",
317    "interfaces/inner_api/src/form_host_proxy.cpp",
318    "interfaces/inner_api/src/form_host_stub.cpp",
319    "interfaces/inner_api/src/form_info_filter.cpp",
320    "interfaces/inner_api/src/form_instance.cpp",
321    "interfaces/inner_api/src/form_instances_filter.cpp",
322    "interfaces/inner_api/src/form_js_info.cpp",
323    "interfaces/inner_api/src/form_mgr_proxy.cpp",
324    "interfaces/inner_api/src/form_mgr_stub.cpp",
325    "interfaces/inner_api/src/form_provider_data.cpp",
326    "interfaces/inner_api/src/form_provider_info.cpp",
327    "interfaces/inner_api/src/form_provider_proxy.cpp",
328    "interfaces/inner_api/src/form_provider_stub.cpp",
329    "interfaces/inner_api/src/form_publish_interceptor_proxy.cpp",
330    "interfaces/inner_api/src/form_publish_interceptor_stub.cpp",
331    "interfaces/inner_api/src/form_render_proxy.cpp",
332    "interfaces/inner_api/src/form_render_stub.cpp",
333    "interfaces/inner_api/src/form_share_info.cpp",
334    "interfaces/inner_api/src/form_supply_proxy.cpp",
335    "interfaces/inner_api/src/form_supply_stub.cpp",
336    "interfaces/inner_api/src/js_form_state_observer_proxy.cpp",
337    "interfaces/inner_api/src/js_form_state_observer_stub.cpp",
338    "interfaces/inner_api/src/provider_connect_proxy.cpp",
339    "interfaces/inner_api/src/provider_connect_stub.cpp",
340    "interfaces/inner_api/src/running_form_info.cpp",
341  ]
342
343  configs = [ ":formmgr_log_config" ]
344
345  public_configs = [
346    ":formmgr_sdk_config",
347    ":formmgr_config",
348  ]
349
350  deps = []
351
352  external_deps = [
353    "ability_base:want",
354    "ability_runtime:ability_manager",
355    "ability_runtime:app_manager",
356    "ability_runtime:runtime",
357    "bundle_framework:appexecfwk_base",
358    "c_utils:utils",
359    "hilog:libhilog",
360    "hicollie:libhicollie",
361    "ipc:ipc_core",
362    "jsoncpp:jsoncpp",
363    "napi:ace_napi",
364    "samgr:samgr_proxy",
365  ]
366
367  subsystem_name = "ability"
368  innerapi_tags = [ "platformsdk" ]
369  part_name = "form_fwk"
370}
371
372ohos_prebuilt_etc("form_config") {
373  source = "services/config/form_config.xml"
374  module_install_dir = "etc/form"
375  part_name = "form_fwk"
376  subsystem_name = "ability"
377}
378
379group("form_napi_packages") {
380  if (ability_runtime_graphics) {
381    deps = [
382      "${form_fwk_napi_path}:formagent",
383      "${form_fwk_napi_path}:formbindingdata",
384      "${form_fwk_napi_path}:formbindingdata_napi",
385      "${form_fwk_napi_path}:formerror_napi",
386      "${form_fwk_napi_path}:formextension_napi",
387      "${form_fwk_napi_path}:formextensionability",
388      "${form_fwk_napi_path}:formextensioncontext_napi",
389      "${form_fwk_napi_path}:formhost",
390      "${form_fwk_napi_path}:formhost_napi",
391      "${form_fwk_napi_path}:forminfo",
392      "${form_fwk_napi_path}:forminfo_napi",
393      "${form_fwk_napi_path}:formobserver",
394      "${form_fwk_napi_path}:formprovider",
395      "${form_fwk_napi_path}:formprovider_napi",
396      "${form_fwk_napi_path}:formutil_napi",
397    ]
398  }
399}
400
401group("fms_innerkits_target") {
402  if (ability_runtime_graphics) {
403    deps = [ ":form_manager" ]
404  }
405}
406
407group("fms_target") {
408  deps = [
409    ":libfms",
410    "services/form_render_service:formrender_service_hap",
411  ]
412}
413
414group("fms_services_target") {
415  if (ability_runtime_graphics) {
416    deps = [ ":fms_target" ]
417  }
418}
419