1# Copyright (c) 2021 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/ohos.gni")
14import("../../time.gni")
15
16config("time_client_config") {
17  include_dirs = [
18    "${time_service_path}/ipc/proxy/inner_api_include",
19    "${time_service_path}/ipc/stub/inner_api_include",
20    "${time_service_path}/ipc/base",
21    "include",
22    "${time_utils_path}/native/include",
23    "${time_service_path}/time/include/inner_api_include",
24    "${time_service_path}/timer/include",
25  ]
26}
27
28ohos_shared_library("time_client") {
29  sources = [
30    "${api_path}/src/time_service_client.cpp",
31    "${time_service_path}/ipc/proxy/time_service_proxy.cpp",
32    "${time_service_path}/ipc/proxy/timer_notify_callback_proxy.cpp",
33    "${time_service_path}/ipc/stub/timer_call_back_stub.cpp",
34    "${time_service_path}/time/src/itimer_info.cpp",
35    "${time_service_path}/time/src/timer_call_back.cpp",
36  ]
37  configs = [ ":time_client_config" ]
38  configs += [ "//build/config/gcc:symbol_visibility_hidden" ]
39  public_configs = [ ":time_client_config" ]
40  innerapi_tags = [
41    "platformsdk",
42    "sasdk",
43  ]
44  external_deps = [
45    "ability_runtime:abilitykit_native",
46    "ability_runtime:extensionkit_native",
47    "ability_runtime:wantagent_innerkits",
48    "c_utils:utils",
49    "hilog:libhilog",
50    "ipc:ipc_single",
51    "samgr:samgr_proxy",
52  ]
53  branch_protector_ret = "pac_ret"
54  sanitize = {
55    integer_overflow = true
56    ubsan = true
57    boundary_sanitize = true
58    cfi = true
59    cfi_cross_dso = true
60    debug = time_sanitize_debug
61  }
62  subsystem_name = "time"
63  part_name = "time_service"
64}
65