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