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