1a34a8711Sopenharmony_ci# Copyright (c) 2020 Huawei Device Co., Ltd.
2a34a8711Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3a34a8711Sopenharmony_ci# you may not use this file except in compliance with the License.
4a34a8711Sopenharmony_ci# You may obtain a copy of the License at
5a34a8711Sopenharmony_ci#
6a34a8711Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7a34a8711Sopenharmony_ci#
8a34a8711Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9a34a8711Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10a34a8711Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11a34a8711Sopenharmony_ci# See the License for the specific language governing permissions and
12a34a8711Sopenharmony_ci# limitations under the License.
13a34a8711Sopenharmony_ci
14a34a8711Sopenharmony_ciimport("//build/lite/config/component/lite_component.gni")
15a34a8711Sopenharmony_ci
16a34a8711Sopenharmony_ciSUBSYSTEM_DIR = "//foundation/communication/ipc"
17a34a8711Sopenharmony_ciDBINDER_ROOT = "$SUBSYSTEM_DIR/services/dbinder/c"
18a34a8711Sopenharmony_ciIPC_CORE_ROOT = "$SUBSYSTEM_DIR/ipc/native"
19a34a8711Sopenharmony_ci
20a34a8711Sopenharmony_ciconfig("ipc_rpc_interface") {
21a34a8711Sopenharmony_ci  include_dirs = [
22a34a8711Sopenharmony_ci    "$SUBSYSTEM_DIR/interfaces/innerkits/c/ipc/include",
23a34a8711Sopenharmony_ci    "$SUBSYSTEM_DIR/interfaces/innerkits/c/dbinder/include",
24a34a8711Sopenharmony_ci  ]
25a34a8711Sopenharmony_ci}
26a34a8711Sopenharmony_ciif (ohos_kernel_type == "linux") {
27a34a8711Sopenharmony_ci  SYSTEM_LEVEL = "small"
28a34a8711Sopenharmony_ci  shared_library("dbinder") {
29a34a8711Sopenharmony_ci    sources = [
30a34a8711Sopenharmony_ci      "$DBINDER_ROOT/ipc_adapter/${SYSTEM_LEVEL}/dbinder_ipc_adapter.c",
31a34a8711Sopenharmony_ci      "$DBINDER_ROOT/src/dbinder_service.c",
32a34a8711Sopenharmony_ci      "$DBINDER_ROOT/src/dbinder_stub.c",
33a34a8711Sopenharmony_ci      "$DBINDER_ROOT/src/dbinder_trans_callback.c",
34a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/utils/src/rpc_session_handle.c",
35a34a8711Sopenharmony_ci    ]
36a34a8711Sopenharmony_ci    public_configs = [ ":ipc_rpc_interface" ]
37a34a8711Sopenharmony_ci    include_dirs = [
38a34a8711Sopenharmony_ci      "$DBINDER_ROOT/include",
39a34a8711Sopenharmony_ci      "$DBINDER_ROOT/ipc_adapter/include",
40a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/ipc/include",
41a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/rpc/include",
42a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/rpc/ipc_adapter/include",
43a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/rpc/trans_adapter/include",
44a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/manager/include",
45a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/utils/include",
46a34a8711Sopenharmony_ci      "//commonlibrary/utils_lite/include",
47a34a8711Sopenharmony_ci    ]
48a34a8711Sopenharmony_ci    ldflags = [
49a34a8711Sopenharmony_ci      "-lstdc++",
50a34a8711Sopenharmony_ci      "-lpthread",
51a34a8711Sopenharmony_ci    ]
52a34a8711Sopenharmony_ci    public_deps = [
53a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/interfaces/innerkits/c/ipc:rpc_log",
54a34a8711Sopenharmony_ci      "//third_party/bounds_checking_function/:libsec_shared",
55a34a8711Sopenharmony_ci    ]
56a34a8711Sopenharmony_ci    external_deps = [ "bounds_checking_function:libsec_shared" ]
57a34a8711Sopenharmony_ci  }
58a34a8711Sopenharmony_ci} else if (ohos_kernel_type == "liteos_m") {
59a34a8711Sopenharmony_ci  SYSTEM_LEVEL = "mini"
60a34a8711Sopenharmony_ci  static_library("dbinder") {
61a34a8711Sopenharmony_ci    sources = [
62a34a8711Sopenharmony_ci      "$DBINDER_ROOT/ipc_adapter/${SYSTEM_LEVEL}/dbinder_ipc_adapter.c",
63a34a8711Sopenharmony_ci      "$DBINDER_ROOT/src/dbinder_service.c",
64a34a8711Sopenharmony_ci      "$DBINDER_ROOT/src/dbinder_stub.c",
65a34a8711Sopenharmony_ci      "$DBINDER_ROOT/src/dbinder_trans_callback.c",
66a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/utils/src/rpc_session_handle.c",
67a34a8711Sopenharmony_ci    ]
68a34a8711Sopenharmony_ci    public_configs = [ ":ipc_rpc_interface" ]
69a34a8711Sopenharmony_ci    include_dirs = [
70a34a8711Sopenharmony_ci      "$DBINDER_ROOT/include",
71a34a8711Sopenharmony_ci      "$DBINDER_ROOT/ipc_adapter/include",
72a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/ipc/include",
73a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/rpc/include",
74a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/rpc/ipc_adapter/include",
75a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/rpc/trans_adapter/include",
76a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/native/c/manager/include",
77a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/ipc/test/rpc/include",
78a34a8711Sopenharmony_ci      "$SUBSYSTEM_DIR/utils/include",
79a34a8711Sopenharmony_ci      "//third_party/bounds_checking_function/include",
80a34a8711Sopenharmony_ci      "//commonlibrary/utils_lite/include",
81a34a8711Sopenharmony_ci      "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite",
82a34a8711Sopenharmony_ci    ]
83a34a8711Sopenharmony_ci    ldflags = [ "-lpthread" ]
84a34a8711Sopenharmony_ci    deps = [ "$IPC_CORE_ROOT/c/adapter:rpc_adapter" ]
85a34a8711Sopenharmony_ci  }
86a34a8711Sopenharmony_ci}
87