1# Copyright (c) 2022-2024 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_base/ability_base.gni")
16
17################################### base ########################################
18config("base_config") {
19  visibility = [ ":*" ]
20}
21
22config("base_public_config") {
23  visibility = [ ":*" ]
24  include_dirs = [ "interfaces/inner_api/base/include" ]
25}
26
27config("base_all_dependent_config") {
28  include_dirs = [
29    "${ability_base_innerapi_path}/base/include",
30    "${ipc_native_path}/src/napi/include",
31  ]
32}
33
34ohos_shared_library("base") {
35  branch_protector_ret = "pac_ret"
36
37  sources = [
38    "interfaces/inner_api/base/src/base.cpp",
39    "interfaces/inner_api/base/src/base_object.cpp",
40    "interfaces/inner_api/base/src/bool_wrapper.cpp",
41    "interfaces/inner_api/base/src/byte_wrapper.cpp",
42    "interfaces/inner_api/base/src/double_wrapper.cpp",
43    "interfaces/inner_api/base/src/float_wrapper.cpp",
44    "interfaces/inner_api/base/src/int_wrapper.cpp",
45    "interfaces/inner_api/base/src/long_wrapper.cpp",
46    "interfaces/inner_api/base/src/remote_object_wrapper.cpp",
47    "interfaces/inner_api/base/src/short_wrapper.cpp",
48    "interfaces/inner_api/base/src/string_wrapper.cpp",
49    "interfaces/inner_api/base/src/user_object_wrapper.cpp",
50    "interfaces/inner_api/base/src/zchar_wrapper.cpp",
51  ]
52  configs = [ ":base_config" ]
53  public_configs = [ ":base_public_config" ]
54
55  all_dependent_configs = [ ":base_all_dependent_config" ]
56
57  external_deps = [
58    "c_utils:utils",
59    "ipc:ipc_core",
60  ]
61
62  subsystem_name = "ability"
63  innerapi_tags = [
64    "platformsdk",
65    "sasdk",
66  ]
67  part_name = "ability_base"
68}
69
70################################### configuration ########################################
71config("configuration_sdk_config") {
72  include_dirs = [
73    "interfaces/kits/native/configuration/include",
74    "${ability_base_innerapi_path}/log/include",
75    "${base_global_innerapi_path}/include",
76    "//third_party/json/include",
77  ]
78}
79
80ohos_shared_library("configuration") {
81  branch_protector_ret = "pac_ret"
82
83  sources = [
84    "interfaces/kits/native/configuration/src/configuration.cpp",
85    "interfaces/kits/native/configuration/src/configuration_convertor.cpp",
86  ]
87
88  public_configs = [ ":configuration_sdk_config" ]
89
90  defines = [ "ABILITYBASE_LOG_TAG = \"Configuration\"" ]
91  cflags = []
92  if (target_cpu == "arm") {
93    cflags += [ "-DBINDER_IPC_32BIT" ]
94  }
95
96  external_deps = [
97    "c_utils:utils",
98    "hilog:libhilog",
99  ]
100
101  subsystem_name = "ability"
102  innerapi_tags = [ "platformsdk" ]
103  part_name = "ability_base"
104}
105
106################################### zuri ########################################
107config("zuri_config") {
108  visibility = [ ":*" ]
109  include_dirs = [ "interfaces/kits/native/uri/include" ]
110  cflags = []
111  if (target_cpu == "arm") {
112    cflags += [ "-DBINDER_IPC_32BIT" ]
113  }
114}
115
116config("zuri_exceptions") {
117  cflags_cc = [ "-fexceptions" ]
118}
119
120config("zuri_all_dependent_config") {
121  include_dirs = [ "${ability_base_kits_native_path}/uri/include" ]
122}
123
124ohos_shared_library("zuri") {
125  branch_protector_ret = "pac_ret"
126
127  public_configs = [ ":zuri_config" ]
128
129  all_dependent_configs = [ ":zuri_all_dependent_config" ]
130
131  sources = [ "interfaces/kits/native/uri/src/uri.cpp" ]
132
133  configs = [ ":zuri_exceptions" ]
134
135  deps = []
136
137  external_deps = [
138    "c_utils:utils",
139    "hilog:libhilog",
140  ]
141
142  subsystem_name = "ability"
143  innerapi_tags = [
144    "platformsdk",
145    "sasdk",
146  ]
147  part_name = "ability_base"
148}
149
150################################### want ########################################
151config("want_config") {
152  visibility = [ ":*" ]
153  visibility += [ "./test/fuzztest/*" ]
154  include_dirs = []
155  cflags = []
156  if (target_cpu == "arm") {
157    cflags += [ "-DBINDER_IPC_32BIT" ]
158  }
159  cflags += [ "-Werror,-Wfloat-equal" ]
160  defines = [ "ABILITYBASE_LOG_TAG = \"Want\"" ]
161}
162
163config("want_public_config") {
164  visibility = [ ":*" ]
165  visibility += [ "./test/unittest:*" ]
166  include_dirs = [
167    "interfaces/inner_api/base/include",
168    "interfaces/kits/native/uri/include",
169    "interfaces/kits/native/want/include",
170    "${ability_base_innerapi_path}/log/include",
171    "//third_party/json/include",
172  ]
173}
174
175config("want_all_dependent_config") {
176  include_dirs = [
177    "${ability_base_kits_native_path}/want/include",
178    "//third_party/json/include",
179  ]
180}
181
182ohos_shared_library("want") {
183  branch_protector_ret = "pac_ret"
184
185  sources = [
186    "interfaces/kits/native/want/src/array_wrapper.cpp",
187    "interfaces/kits/native/want/src/element_name.cpp",
188    "interfaces/kits/native/want/src/extra_params.cpp",
189    "interfaces/kits/native/want/src/operation.cpp",
190    "interfaces/kits/native/want/src/operation_builder.cpp",
191    "interfaces/kits/native/want/src/pac_map.cpp",
192    "interfaces/kits/native/want/src/patterns_matcher.cpp",
193    "interfaces/kits/native/want/src/skills.cpp",
194    "interfaces/kits/native/want/src/want.cpp",
195    "interfaces/kits/native/want/src/want_params.cpp",
196    "interfaces/kits/native/want/src/want_params_wrapper.cpp",
197  ]
198
199  deps = [
200    ":base",
201    ":zuri",
202    "//third_party/json:nlohmann_json_static",
203    "//third_party/jsoncpp:jsoncpp",
204  ]
205  all_dependent_configs = [
206    ":want_all_dependent_config",
207    "//third_party/jsoncpp:jsoncpp_public_config",
208  ]
209
210  public_configs = [
211    ":want_all_dependent_config",
212    "//third_party/jsoncpp:jsoncpp_public_config",
213  ]
214
215  external_deps = [
216    "c_utils:utils",
217    "hilog:libhilog",
218    "ipc:ipc_core",
219    "ipc:ipc_single",
220  ]
221
222  configs = [ ":want_config" ]
223  public_configs += [ ":want_public_config" ]
224  subsystem_name = "ability"
225  innerapi_tags = [
226    "platformsdk",
227    "sasdk",
228  ]
229  part_name = "ability_base"
230}
231
232################################### view_data ########################################
233config("view_data_config") {
234  include_dirs = [
235    "${ability_base_kits_native_path}/view_data/include",
236    "${ability_base_innerapi_path}/log/include",
237  ]
238}
239
240ohos_shared_library("view_data") {
241  branch_protector_ret = "pac_ret"
242
243  sources = [
244    "interfaces/kits/native/view_data/src/page_node_info.cpp",
245    "interfaces/kits/native/view_data/src/rect.cpp",
246    "interfaces/kits/native/view_data/src/view_data.cpp",
247  ]
248
249  deps = [ "//third_party/json:nlohmann_json_static" ]
250
251  external_deps = [ "hilog:libhilog" ]
252
253  public_configs = [ ":view_data_config" ]
254  subsystem_name = "ability"
255  innerapi_tags = [ "platformsdk_indirect" ]
256  part_name = "ability_base"
257}
258
259################################### session_info ########################################
260config("session_info_all_dependent_config") {
261  include_dirs = [
262    "${ability_base_kits_native_path}/session_info/include",
263    "${ability_base_innerapi_path}/log/include",
264  ]
265}
266
267ohos_shared_library("session_info") {
268  branch_protector_ret = "pac_ret"
269
270  sources = [ "interfaces/kits/native/session_info/src/session_info.cpp" ]
271
272  all_dependent_configs = [ ":session_info_all_dependent_config" ]
273
274  deps = [ ":want" ]
275
276  external_deps = [
277    "ability_runtime:ability_start_setting",
278    "ability_runtime:process_options",
279    "ability_runtime:start_window_option",
280    "bundle_framework:appexecfwk_base",
281    "c_utils:utils",
282    "hilog:libhilog",
283    "ipc:ipc_core",
284  ]
285
286  subsystem_name = "ability"
287  innerapi_tags = [ "platformsdk_indirect" ]
288  part_name = "ability_base"
289}
290
291################################### string_utils ########################################
292config("string_utils_config") {
293  include_dirs = [ "${ability_base_kits_native_path}/extractortool/include" ]
294}
295
296ohos_shared_library("string_utils") {
297  branch_protector_ret = "pac_ret"
298
299  if (is_mingw) {
300    defines = [ "WINDOWS_PLATFORM" ]
301  } else {
302    defines = [ "MAC_PLATFORM" ]
303  }
304
305  sources = [ "interfaces/kits/native/extractortool/src/file_path_utils.cpp" ]
306
307  cflags = []
308  if (target_cpu == "arm") {
309    cflags += [ "-DBINDER_IPC_32BIT" ]
310  }
311
312  public_configs = [ ":string_utils_config" ]
313
314  subsystem_name = "ability"
315  innerapi_tags = [
316    "chipsetsdk_indirect",
317    "platformsdk_indirect",
318  ]
319  part_name = "ability_base"
320}
321
322################################### extractortool ########################################
323config("ability_extractor_config") {
324  include_dirs = [
325    "interfaces/kits/native/extractortool/include",
326    "${ability_base_innerapi_path}/log/include",
327    "//third_party/json/include",
328    "//third_party/zlib/contrib/minizip",
329    "//third_party/zlib",
330  ]
331}
332
333config("exceptions") {
334  cflags_cc = [ "-fexceptions" ]
335}
336
337ohos_shared_library("extractortool") {
338  branch_protector_ret = "pac_ret"
339
340  sources = [
341    "interfaces/kits/native/extractortool/src/extractor.cpp",
342    "interfaces/kits/native/extractortool/src/file_mapper.cpp",
343    "interfaces/kits/native/extractortool/src/zip_file.cpp",
344    "interfaces/kits/native/extractortool/src/zip_file_reader.cpp",
345    "interfaces/kits/native/extractortool/src/zip_file_reader_io.cpp",
346    "interfaces/kits/native/extractortool/src/zip_file_reader_mem.cpp",
347  ]
348
349  cflags = []
350  cflags_cc = []
351  configs = [ ":exceptions" ]
352
353  if (target_cpu == "arm") {
354    cflags += [ "-DBINDER_IPC_32BIT" ]
355  }
356
357  deps = [
358    ":string_utils",
359    "//third_party/zlib:shared_libz",
360  ]
361
362  public_configs = [ ":ability_extractor_config" ]
363
364  external_deps = [
365    "c_utils:utils",
366    "hilog:libhilog",
367    "hitrace:hitrace_meter",
368  ]
369
370  subsystem_name = "ability"
371  innerapi_tags = [
372    "chipsetsdk_indirect",
373    "platformsdk_indirect",
374  ]
375  part_name = "ability_base"
376}
377
378################################### extractresourcemanager ########################################
379config("ability_extract_resource_manager_config") {
380  include_dirs = [ "interfaces/kits/native/extractortool/include" ]
381}
382
383ohos_shared_library("extractresourcemanager") {
384  branch_protector_ret = "pac_ret"
385
386  sources = [
387    "interfaces/kits/native/extractortool/src/extract_resource_manager.cpp",
388  ]
389
390  cflags = []
391  if (target_cpu == "arm") {
392    cflags += [ "-DBINDER_IPC_32BIT" ]
393  }
394
395  external_deps = [ "resource_management:global_resmgr" ]
396
397  public_configs = [ ":ability_extract_resource_manager_config" ]
398
399  subsystem_name = "ability"
400  innerapi_tags = [ "platformsdk_indirect" ]
401  part_name = "ability_base"
402}
403
404group("base_innerkits_target") {
405  deps = [
406    ":base",
407    ":configuration",
408    ":extractortool",
409    ":extractresourcemanager",
410    ":session_info",
411    ":string_utils",
412    ":view_data",
413    ":want",
414  ]
415}
416