1115cd2caSopenharmony_ci# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
2115cd2caSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3115cd2caSopenharmony_ci# you may not use this file except in compliance with the License.
4115cd2caSopenharmony_ci# You may obtain a copy of the License at
5115cd2caSopenharmony_ci#
6115cd2caSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7115cd2caSopenharmony_ci#
8115cd2caSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9115cd2caSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10115cd2caSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11115cd2caSopenharmony_ci# See the License for the specific language governing permissions and
12115cd2caSopenharmony_ci# limitations under the License.
13115cd2caSopenharmony_ci
14115cd2caSopenharmony_ciimport("//build/lite/config/component/lite_component.gni")
15115cd2caSopenharmony_ciimport("//build/ohos.gni")
16115cd2caSopenharmony_ciimport("signature/pm.gni")
17115cd2caSopenharmony_ci
18115cd2caSopenharmony_ci## Build Contacts_DataAbility.hap
19115cd2caSopenharmony_ciohos_hap("Contacts_DataAbility") {
20115cd2caSopenharmony_ci  hap_profile = "entry/src/main/module.json"
21115cd2caSopenharmony_ci  deps = [
22115cd2caSopenharmony_ci    ":Contacts_DataAbility_js_assets",
23115cd2caSopenharmony_ci    ":Contacts_DataAbility_resources",
24115cd2caSopenharmony_ci  ]
25115cd2caSopenharmony_ci  shared_libraries = [ ":contactsdataability" ]
26115cd2caSopenharmony_ci  certificate_profile = "./signature/contactsdata.p7b"
27115cd2caSopenharmony_ci  hap_name = "Contacts_DataAbility"
28115cd2caSopenharmony_ci  part_name = "contacts_data"
29115cd2caSopenharmony_ci  subsystem_name = "applications"
30115cd2caSopenharmony_ci  module_install_dir = "app/com.ohos.contactsdataability"
31115cd2caSopenharmony_ci  if (defined(sign_hap_py_path)) {
32115cd2caSopenharmony_ci    certificate_profile = "${certificate_profile_path}"
33115cd2caSopenharmony_ci    key_alias = "contacts_data"
34115cd2caSopenharmony_ci    private_key_path = "contacts_data"
35115cd2caSopenharmony_ci    compatible_version = "9"
36115cd2caSopenharmony_ci  }
37115cd2caSopenharmony_ci}
38115cd2caSopenharmony_ci
39115cd2caSopenharmony_ciohos_app_scope("Contacts_DataAbility_app_profile") {
40115cd2caSopenharmony_ci  app_profile = "AppScope/app.json"
41115cd2caSopenharmony_ci  sources = [ "AppScope/resources" ]
42115cd2caSopenharmony_ci}
43115cd2caSopenharmony_ci
44115cd2caSopenharmony_ciohos_js_assets("Contacts_DataAbility_js_assets") {
45115cd2caSopenharmony_ci  ets2abc = true
46115cd2caSopenharmony_ci  source_dir = "entry/src/main/ets"
47115cd2caSopenharmony_ci}
48115cd2caSopenharmony_ci
49115cd2caSopenharmony_ciohos_resources("Contacts_DataAbility_resources") {
50115cd2caSopenharmony_ci  sources = [ "entry/src/main/resources" ]
51115cd2caSopenharmony_ci  deps = [ ":Contacts_DataAbility_app_profile" ]
52115cd2caSopenharmony_ci  hap_profile = "entry/src/main/module.json"
53115cd2caSopenharmony_ci}
54115cd2caSopenharmony_ci
55115cd2caSopenharmony_ci## Build contactsdataability.so {{{
56115cd2caSopenharmony_ciconfig("contactsdataability_public_config") {
57115cd2caSopenharmony_ci  visibility = [ ":*" ]
58115cd2caSopenharmony_ci  include_dirs = [
59115cd2caSopenharmony_ci    "//third_party/node/src",
60115cd2caSopenharmony_ci    "ability/common/include",
61115cd2caSopenharmony_ci    "ability/common/utils/include/",
62115cd2caSopenharmony_ci    "dataBusiness/voicemail/include",
63115cd2caSopenharmony_ci    "dataBusiness/calllog/include",
64115cd2caSopenharmony_ci    "dataBusiness/contacts/include",
65115cd2caSopenharmony_ci    "ability/account/include",
66115cd2caSopenharmony_ci    "dataBusiness/quicksearch/include",
67115cd2caSopenharmony_ci    "ability/sinicization/include",
68115cd2caSopenharmony_ci    "ability/account/include",
69115cd2caSopenharmony_ci    "ability/merge/include",
70115cd2caSopenharmony_ci    "ability/datadisasterrecovery/include",
71115cd2caSopenharmony_ci  ]
72115cd2caSopenharmony_ci  cflags = []
73115cd2caSopenharmony_ci}
74115cd2caSopenharmony_ci
75115cd2caSopenharmony_ciohos_shared_library("contactsdataability") {
76115cd2caSopenharmony_ci  sources = [
77115cd2caSopenharmony_ci    "ability/account/src/account_data_collection.cpp",
78115cd2caSopenharmony_ci    "ability/account/src/account_manager.cpp",
79115cd2caSopenharmony_ci    "ability/account/src/account_sync.cpp",
80115cd2caSopenharmony_ci    "ability/common/utils/src/contacts_common_event.cpp",
81115cd2caSopenharmony_ci    "ability/common/utils/src/contacts_json_utils.cpp",
82115cd2caSopenharmony_ci    "ability/common/utils/src/contacts_path.cpp",
83115cd2caSopenharmony_ci    "ability/common/utils/src/contacts_string_utils.cpp",
84115cd2caSopenharmony_ci    "ability/common/utils/src/file_utils.cpp",
85115cd2caSopenharmony_ci    "ability/common/utils/src/merge_utils.cpp",
86115cd2caSopenharmony_ci    "ability/common/utils/src/predicates_convert.cpp",
87115cd2caSopenharmony_ci    "ability/common/utils/src/sql_analyzer.cpp",
88115cd2caSopenharmony_ci    "ability/common/utils/src/telephony_permission.cpp",
89115cd2caSopenharmony_ci    "ability/common/utils/src/uri_utils.cpp",
90115cd2caSopenharmony_ci    "ability/datadisasterrecovery/src/database_disaster_recovery.cpp",
91115cd2caSopenharmony_ci    "ability/merge/src/candidate.cpp",
92115cd2caSopenharmony_ci    "ability/merge/src/candidate_status.cpp",
93115cd2caSopenharmony_ci    "ability/merge/src/match_candidate.cpp",
94115cd2caSopenharmony_ci    "ability/merge/src/merger_contacts.cpp",
95115cd2caSopenharmony_ci    "ability/sinicization/src/character_transliterate.cpp",
96115cd2caSopenharmony_ci    "ability/sinicization/src/construction_name.cpp",
97115cd2caSopenharmony_ci    "dataBusiness/calllog/src/calllog_ability.cpp",
98115cd2caSopenharmony_ci    "dataBusiness/calllog/src/calllog_database.cpp",
99115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts.cpp",
100115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts_account.cpp",
101115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts_data_ability.cpp",
102115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts_database.cpp",
103115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts_datashare_stub_impl.cpp",
104115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts_type.cpp",
105115cd2caSopenharmony_ci    "dataBusiness/contacts/src/contacts_update_helper.cpp",
106115cd2caSopenharmony_ci    "dataBusiness/contacts/src/profile_database.cpp",
107115cd2caSopenharmony_ci    "dataBusiness/contacts/src/raw_contacts.cpp",
108115cd2caSopenharmony_ci    "dataBusiness/quicksearch/src/contacts_search.cpp",
109115cd2caSopenharmony_ci    "dataBusiness/voicemail/src/voicemail_ability.cpp",
110115cd2caSopenharmony_ci    "dataBusiness/voicemail/src/voicemail_database.cpp",
111115cd2caSopenharmony_ci  ]
112115cd2caSopenharmony_ci  include_dirs = [
113115cd2caSopenharmony_ci    "//commonlibrary/c_utils/base/include",
114115cd2caSopenharmony_ci    "//base/hiviewdfx/hilog/interfaces/native/innerkits/include",
115115cd2caSopenharmony_ci    "//base/account/os_account/interfaces/innerkits/ohosaccount/native/include/",
116115cd2caSopenharmony_ci    "//base/account/os_account/interfaces/kits/napi/distributedaccount/include/",
117115cd2caSopenharmony_ci    "//base/account/os_account/interfaces/innerkits/include",
118115cd2caSopenharmony_ci    "//foundation/ability/ability_runtime/interfaces/inner_api/ability_manager/include",
119115cd2caSopenharmony_ci    "//foundation/ability/ability_runtime/interfaces/kits/native/ability/native",
120115cd2caSopenharmony_ci  ]
121115cd2caSopenharmony_ci
122115cd2caSopenharmony_ci  deps = [ "//third_party/jsoncpp:jsoncpp" ]
123115cd2caSopenharmony_ci
124115cd2caSopenharmony_ci  public_configs = [ ":contactsdataability_public_config" ]
125115cd2caSopenharmony_ci  external_deps = [
126115cd2caSopenharmony_ci    "ability_base:want",
127115cd2caSopenharmony_ci    "ability_base:zuri",
128115cd2caSopenharmony_ci    "ability_runtime:app_context",
129115cd2caSopenharmony_ci    "ability_runtime:dataobs_manager",
130115cd2caSopenharmony_ci    "ability_runtime:extensionkit_native",
131115cd2caSopenharmony_ci    "access_token:libaccesstoken_sdk",
132115cd2caSopenharmony_ci    "access_token:libprivacy_sdk",
133115cd2caSopenharmony_ci    "access_token:libtokenid_sdk",
134115cd2caSopenharmony_ci    "bundle_framework:appexecfwk_base",
135115cd2caSopenharmony_ci    "bundle_framework:appexecfwk_core",
136115cd2caSopenharmony_ci    "c_utils:utilsbase",
137115cd2caSopenharmony_ci    "common_event_service:cesfwk_innerkits",
138115cd2caSopenharmony_ci    "data_share:datashare_common",
139115cd2caSopenharmony_ci    "data_share:datashare_provider",
140115cd2caSopenharmony_ci    "hilog:libhilog",
141115cd2caSopenharmony_ci    "ipc:ipc_single",
142115cd2caSopenharmony_ci    "napi:ace_napi",
143115cd2caSopenharmony_ci    "os_account:os_account_innerkits",
144115cd2caSopenharmony_ci    "relational_store:native_dataability",
145115cd2caSopenharmony_ci    "relational_store:native_rdb",
146115cd2caSopenharmony_ci    "relational_store:rdb_data_share_adapter",
147115cd2caSopenharmony_ci  ]
148115cd2caSopenharmony_ci
149115cd2caSopenharmony_ci  defines = [
150115cd2caSopenharmony_ci    "CONTACTSDATA_LOG_TAG = \"ContactsData\"",
151115cd2caSopenharmony_ci    "LOG_DOMAIN = 0xD001F09",
152115cd2caSopenharmony_ci  ]
153115cd2caSopenharmony_ci
154115cd2caSopenharmony_ci  public_deps = []
155115cd2caSopenharmony_ci  part_name = "contacts_data"
156115cd2caSopenharmony_ci  subsystem_name = "applications"
157115cd2caSopenharmony_ci}
158115cd2caSopenharmony_ci## Build contactsdataability.so }}}
159