1# Copyright (C) 2021-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.
13import("//build/config/components/idl_tool/idl.gni")
14import("//build/ohos.gni")
15import("../../../core_service/telephony_core_service.gni")
16
17SUBSYSTEM_DIR = "../../../"
18TELEPHONY_CORE_SERVICE_ROOT = "$SUBSYSTEM_DIR/core_service"
19TELEPHONY_INTERFACES_INNERKITS =
20    "$TELEPHONY_CORE_SERVICE_ROOT/interfaces/innerkits"
21TELEPHONY_FRAMEWORKS_NATIVE_ROOT =
22    "$TELEPHONY_CORE_SERVICE_ROOT/frameworks/native/"
23TELEPHONY_IMS_CORE_SERVICE_ROOT =
24    "$TELEPHONY_CORE_SERVICE_ROOT/services/ims_service_interaction"
25
26config("tel_core_service_api_config") {
27  # header file path
28  include_dirs = [
29    "$TELEPHONY_INTERFACES_INNERKITS/include",
30    "$TELEPHONY_INTERFACES_INNERKITS/ims/include",
31    "$TELEPHONY_INTERFACES_INNERKITS/satellite",
32  ]
33  if (core_service_support_esim) {
34    include_dirs += [ "${target_gen_dir}" ]
35  }
36
37  cflags = []
38  if (is_double_framework) {
39    cflags = [ "-DCONFIG_DUAL_FRAMEWORK" ]
40  }
41  if (target_cpu == "arm") {
42    cflags += [ "-DBINDER_IPC_32BIT" ]
43  }
44  if (is_standard_system) {
45    cflags += [ "-DCONFIG_STANDARD_SYSTEM" ]
46  }
47  if (defined(build_public_version) && build_public_version) {
48    cflags += [ "-DBUILD_PUBLIC_VERSION" ]
49  }
50}
51
52if (core_service_support_esim) {
53  idl_interface_sources = [ "${target_gen_dir}/esim_service_proxy.cpp" ]
54
55  idl_gen_interface("esim_service_api") {
56    src_idl = rebase_path("IEsimService.idl")
57    dst_file = string_join(",", idl_interface_sources)
58    log_domainid = "0xD001F04"
59    log_tag = "CoreServiceApi"
60  }
61}
62
63ohos_shared_library("tel_core_service_api") {
64  sanitize = {
65    cfi = true
66    cfi_cross_dso = true
67    debug = false
68  }
69  branch_protector_ret = "pac_ret"
70  sources = [
71    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/cell_information.cpp",
72    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/cell_location.cpp",
73    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/core_manager_inner.cpp",
74    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/core_service_client.cpp",
75    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/core_service_proxy.cpp",
76    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/i_network_search_callback_stub.cpp",
77    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/ims_reg_info_callback_stub.cpp",
78    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/network_information.cpp",
79    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/network_search_result.cpp",
80    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/network_state.cpp",
81    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/nr_ssb_information.cpp",
82    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/operator_config_types.cpp",
83    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/resource_utils.cpp",
84    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/signal_information.cpp",
85    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/tel_ril_base_parcel.cpp",
86    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/telephony_state_registry_client.cpp",
87    "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/telephony_state_registry_proxy.cpp",
88    "$TELEPHONY_IMS_CORE_SERVICE_ROOT/src/ims_core_service_callback_proxy.cpp",
89  ]
90
91  if (core_service_support_esim) {
92    sources += [
93      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/download_profile_config_info_parcel.cpp",
94      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/download_profile_result_parcel.cpp",
95      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/downloadable_profile_parcel.cpp",
96      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/esim_service_client.cpp",
97      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/euicc_info_parcel.cpp",
98      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/get_downloadable_profiles_result_parcel.cpp",
99      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/profile_info_list_parcel.cpp",
100      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/profile_metadata_result_parcel.cpp",
101      "$TELEPHONY_FRAMEWORKS_NATIVE_ROOT/src/response_esim_result.cpp",
102      "${target_gen_dir}/esim_service_proxy.cpp",
103    ]
104  }
105
106  version_script =
107      "$TELEPHONY_INTERFACES_INNERKITS/libtel_core_service_api.versionscript"
108
109  defines = [
110    "TELEPHONY_LOG_TAG = \"CoreServiceApi\"",
111    "LOG_DOMAIN = 0xD001F04",
112  ]
113
114  defines += telephony_extra_defines
115
116  public_configs = [ "$TELEPHONY_CORE_SERVICE_ROOT/utils:telephony_log_config" ]
117
118  public_configs += [ ":tel_core_service_api_config" ]
119
120  if (core_service_support_esim) {
121    deps = [ ":esim_service_api" ]
122  }
123
124  external_deps = [
125    "ability_base:want",
126    "bundle_framework:appexecfwk_base",
127    "bundle_framework:appexecfwk_core",
128    "c_utils:utils",
129    "eventhandler:libeventhandler",
130    "hilog:libhilog",
131    "init:libbegetutil",
132    "ipc:ipc_single",
133    "resource_management:global_resmgr",
134    "samgr:samgr_proxy",
135  ]
136
137  if (core_service_support_esim) {
138    external_deps += [ "ipc:ipc_core" ]
139  }
140
141  cflags_cc = [
142    "-O2",
143    "-D_FORTIFY_SOURCE=2",
144  ]
145
146  innerapi_tags = [ "platformsdk" ]
147  part_name = "core_service"
148  subsystem_name = "telephony"
149}
150