1# Copyright (c) 2022 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/config/components/ets_frontend/es2abc_config.gni") 15import("//build/ohos.gni") 16import("//build/ohos/ace/ace.gni") 17import("//foundation/distributeddatamgr/data_object/data_object.gni") 18group("build_module") { 19 deps = [ ":distributeddataobject" ] 20} 21 22# compile .js to .abc. 23es2abc_gen_abc("gen_distributed_data_object_abc") { 24 extra_visibility = [ ":*" ] 25 src_js = rebase_path("distributed_data_object.js") 26 dst_file = rebase_path(target_out_dir + "/distributed_data_object.abc") 27 in_puts = [ "distributed_data_object.js" ] 28 out_puts = [ target_out_dir + "/distributed_data_object.abc" ] 29 extra_args = [ "--module" ] 30} 31 32config("objectstore_config") { 33 visibility = [ ":*" ] 34 35 cflags = [ "-DHILOG_ENABLE" ] 36 37 include_dirs = [ 38 "../../frameworks/jskitsimpl/include/adaptor", 39 "../../frameworks/jskitsimpl/include/common", 40 "../../frameworks/innerkitsimpl/include/adaptor", 41 "../../frameworks/innerkitsimpl/include/common", 42 "../../frameworks/innerkitsimpl/include", 43 "../../frameworks/innerkitsimpl/include/communicator", 44 "../../interfaces/innerkits", 45 ] 46} 47 48config("objectstore_public_config") { 49 visibility = [ ":*" ] 50 51 include_dirs = [ "." ] 52} 53 54base_output_path = 55 get_label_info(":distributed_data_object_js", "target_out_dir") 56distributed_data_object_js_obj_path = 57 base_output_path + "/distributed_data_object.o" 58gen_js_obj("distributed_data_object_js") { 59 input = "distributed_data_object.js" 60 output = distributed_data_object_js_obj_path 61 dep = ":gen_distributed_data_object_abc" 62} 63 64abc_output_path = 65 get_label_info(":distributed_data_object_abc", "target_out_dir") 66distributed_data_object_abc_obj_path = 67 abc_output_path + "/distributed_data_object_abc.o" 68gen_js_obj("distributed_data_object_abc") { 69 input = "$target_out_dir/distributed_data_object.abc" 70 output = distributed_data_object_abc_obj_path 71 dep = ":gen_distributed_data_object_abc" 72} 73 74ohos_shared_library("distributeddataobject") { 75 branch_protector_ret = "pac_ret" 76 sanitize = { 77 ubsan = true 78 boundary_sanitize = true 79 cfi = true 80 cfi_cross_dso = true 81 debug = false 82 } 83 part_name = "data_object" 84 sources = [ 85 "../../frameworks/jskitsimpl/src/adaptor/js_distributedobject.cpp", 86 "../../frameworks/jskitsimpl/src/adaptor/js_distributedobjectstore.cpp", 87 "../../frameworks/jskitsimpl/src/adaptor/js_module_init.cpp", 88 "../../frameworks/jskitsimpl/src/adaptor/js_object_wrapper.cpp", 89 "../../frameworks/jskitsimpl/src/adaptor/js_watcher.cpp", 90 "../../frameworks/jskitsimpl/src/adaptor/notifier_impl.cpp", 91 "../../frameworks/jskitsimpl/src/common/js_ability.cpp", 92 "../../frameworks/jskitsimpl/src/common/js_util.cpp", 93 "../../frameworks/jskitsimpl/src/common/napi_queue.cpp", 94 "../../frameworks/jskitsimpl/src/common/object_error.cpp", 95 "../../frameworks/jskitsimpl/src/common/uv_queue.cpp", 96 ] 97 98 configs = [ ":objectstore_config" ] 99 100 deps = [ 101 ":distributed_data_object_abc", 102 ":distributed_data_object_js", 103 "//foundation/distributeddatamgr/data_object/interfaces/innerkits:distributeddataobject_impl", 104 ] 105 external_deps = [ 106 "ability_runtime:abilitykit_native", 107 "ability_runtime:app_context", 108 "ability_runtime:extensionkit_native", 109 "ability_runtime:napi_base_context", 110 "access_token:libaccesstoken_sdk", 111 "bounds_checking_function:libsec_shared", 112 "common_event_service:cesfwk_innerkits", 113 "hilog:libhilog", 114 "kv_store:distributeddata_inner", 115 "kv_store:distributeddb", 116 "libuv:uv", 117 "napi:ace_napi", 118 ] 119 120 public_configs = [ ":objectstore_public_config" ] 121 relative_install_dir = "module/data" 122 subsystem_name = "distributeddatamgr" 123} 124