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("../../../config.gni") 16 17SUBSYSTEM_DIR = "//foundation/communication/ipc" 18IPC_CORE_ROOT = "$SUBSYSTEM_DIR/ipc/native" 19 20config("libipc_single_private_config") { 21 cflags_cc = [ 22 "-DCONFIG_IPC_SINGLE", 23 "-O2", 24 ] 25} 26 27config("ipc_all_deps_config") { 28 if (is_emulator) { 29 defines = [ "EMULATOR_PLATFORM" ] 30 } 31} 32 33ohos_shared_library("ipc_single") { 34 sanitize = { 35 integer_overflow = true 36 } 37 version_script = "libipc_single_map" 38 branch_protector_ret = "pac_ret" 39 include_dirs = [ 40 "$IPC_CORE_ROOT/c/adapter/access_token/include", 41 "$SUBSYSTEM_DIR/utils/include", 42 ] 43 44 sources = [ 45 "$IPC_CORE_ROOT/c/adapter/access_token/src/access_token_adapter.c", 46 "$IPC_CORE_ROOT/src/core/source/ipc_file_descriptor.cpp", 47 "$IPC_CORE_ROOT/src/core/source/ipc_object_proxy.cpp", 48 "$IPC_CORE_ROOT/src/core/source/ipc_object_stub.cpp", 49 "$IPC_CORE_ROOT/src/core/source/ipc_payload_statistics.cpp", 50 "$IPC_CORE_ROOT/src/core/source/ipc_process_skeleton.cpp", 51 "$IPC_CORE_ROOT/src/core/source/ipc_skeleton.cpp", 52 "$IPC_CORE_ROOT/src/core/source/ipc_thread_pool.cpp", 53 "$IPC_CORE_ROOT/src/core/source/ipc_thread_skeleton.cpp", 54 "$IPC_CORE_ROOT/src/core/source/ipc_workthread.cpp", 55 "$IPC_CORE_ROOT/src/core/source/iremote_broker.cpp", 56 "$IPC_CORE_ROOT/src/core/source/iremote_object.cpp", 57 "$IPC_CORE_ROOT/src/core/source/message_option.cpp", 58 "$IPC_CORE_ROOT/src/core/source/message_parcel.cpp", 59 "$IPC_CORE_ROOT/src/core/source/peer_holder.cpp", 60 "$IPC_CORE_ROOT/src/mock/source/binder_debug.cpp", 61 "$IPC_CORE_ROOT/src/mock/source/binder_invoker.cpp", 62 "$IPC_CORE_ROOT/src/mock/source/hitrace_invoker.cpp", 63 "$IPC_CORE_ROOT/src/mock/source/invoker_factory.cpp", 64 "$IPC_CORE_ROOT/src/mock/source/invoker_rawdata.cpp", 65 ] 66 67 configs = [ 68 "$SUBSYSTEM_DIR/config:ipc_util_config", 69 ":libipc_single_private_config", 70 ] 71 public_configs = [ 72 "$SUBSYSTEM_DIR/config:ipc_util_config", 73 ":ipc_all_deps_config", 74 ] 75 deps = [ "$IPC_CORE_ROOT/src/core:ipc_common" ] 76 77 external_deps = [ 78 "c_utils:utils", 79 "ffrt:libffrt", 80 "hilog:libhilog", 81 "hisysevent:libhisysevent", 82 "hitrace:libhitracechain", 83 "selinux:libselinux", 84 ] 85 if (!defined(ohos_lite)) { 86 external_deps += [ "faultloggerd:libbacktrace_local" ] 87 } 88 defines = [ 89 "CONFIG_IPC_SINGLE", 90 "FFRT_IPC_ENABLE", 91 ] 92 if (build_selinux) { 93 defines += [ "WITH_SELINUX" ] 94 } 95 innerapi_tags = [ 96 "chipsetsdk", 97 "platformsdk", 98 "sasdk", 99 ] 100 install_images = [ 101 system_base_dir, 102 updater_base_dir, 103 ] 104 105 subsystem_name = "communication" 106 part_name = "ipc" 107} 108