1bc2ed2b3Sopenharmony_ci# Copyright (C) 2022-2023 Huawei Device Co., Ltd. 2bc2ed2b3Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 3bc2ed2b3Sopenharmony_ci# you may not use this file except in compliance with the License. 4bc2ed2b3Sopenharmony_ci# You may obtain a copy of the License at 5bc2ed2b3Sopenharmony_ci# 6bc2ed2b3Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 7bc2ed2b3Sopenharmony_ci# 8bc2ed2b3Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 9bc2ed2b3Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 10bc2ed2b3Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11bc2ed2b3Sopenharmony_ci# See the License for the specific language governing permissions and 12bc2ed2b3Sopenharmony_ci# limitations under the License. 13bc2ed2b3Sopenharmony_ci 14bc2ed2b3Sopenharmony_ciimport("//build/ohos.gni") 15bc2ed2b3Sopenharmony_ciimport("//build/ohos_var.gni") 16bc2ed2b3Sopenharmony_ciimport("../nfc.gni") 17bc2ed2b3Sopenharmony_ci 18bc2ed2b3Sopenharmony_ciconfig("nfc_config") { 19bc2ed2b3Sopenharmony_ci visibility = [ ":*" ] 20bc2ed2b3Sopenharmony_ci 21bc2ed2b3Sopenharmony_ci defines = [ "DEBUG" ] 22bc2ed2b3Sopenharmony_ci if (nfc_use_vendor_nci_native) { 23bc2ed2b3Sopenharmony_ci defines += [ "USE_VENDOR_NCI_NATIVE" ] 24bc2ed2b3Sopenharmony_ci } 25bc2ed2b3Sopenharmony_ci 26bc2ed2b3Sopenharmony_ci if (nfc_service_feature_vendor_applications_enabled) { 27bc2ed2b3Sopenharmony_ci defines += [ "VENDOR_APPLICATIONS_ENABLED" ] 28bc2ed2b3Sopenharmony_ci } 29bc2ed2b3Sopenharmony_ci 30bc2ed2b3Sopenharmony_ci if (nfc_sim_feature) { 31bc2ed2b3Sopenharmony_ci defines += [ "NFC_SIM_FEATURE" ] 32bc2ed2b3Sopenharmony_ci } 33bc2ed2b3Sopenharmony_ci 34bc2ed2b3Sopenharmony_ci if (nfc_service_feature_ndef_wifi_enabled) { 35bc2ed2b3Sopenharmony_ci defines += [ "NDEF_WIFI_ENABLED" ] 36bc2ed2b3Sopenharmony_ci } 37bc2ed2b3Sopenharmony_ci 38bc2ed2b3Sopenharmony_ci if (nfc_service_feature_ndef_bt_enabled) { 39bc2ed2b3Sopenharmony_ci defines += [ "NDEF_BT_ENABLED" ] 40bc2ed2b3Sopenharmony_ci } 41bc2ed2b3Sopenharmony_ci 42bc2ed2b3Sopenharmony_ci include_dirs = [ 43bc2ed2b3Sopenharmony_ci "include", 44bc2ed2b3Sopenharmony_ci "src/ipc/controller", 45bc2ed2b3Sopenharmony_ci "src/ipc/tags", 46bc2ed2b3Sopenharmony_ci "src/ipc/card_emulation", 47bc2ed2b3Sopenharmony_ci "src/nci_adapter", 48bc2ed2b3Sopenharmony_ci "src/utils", 49bc2ed2b3Sopenharmony_ci "src/card_emulation", 50bc2ed2b3Sopenharmony_ci "src/external_deps", 51bc2ed2b3Sopenharmony_ci "src/tag", 52bc2ed2b3Sopenharmony_ci "$NFC_DIR/interfaces/inner_api/common", 53bc2ed2b3Sopenharmony_ci ] 54bc2ed2b3Sopenharmony_ci} 55bc2ed2b3Sopenharmony_ci 56bc2ed2b3Sopenharmony_ciohos_prebuilt_etc("nfc_prebuilt_config_apdu") { 57bc2ed2b3Sopenharmony_ci source = "res/nfc_card_apdu.json" 58bc2ed2b3Sopenharmony_ci relative_install_dir = "nfc" 59bc2ed2b3Sopenharmony_ci part_name = "nfc" 60bc2ed2b3Sopenharmony_ci subsystem_name = "communication" 61bc2ed2b3Sopenharmony_ci} 62bc2ed2b3Sopenharmony_ci 63bc2ed2b3Sopenharmony_ciohos_prebuilt_etc("nfc_prebuilt_config_string_en") { 64bc2ed2b3Sopenharmony_ci source = "res/en/string_en.json" 65bc2ed2b3Sopenharmony_ci relative_install_dir = "nfc" 66bc2ed2b3Sopenharmony_ci part_name = "nfc" 67bc2ed2b3Sopenharmony_ci subsystem_name = "communication" 68bc2ed2b3Sopenharmony_ci} 69bc2ed2b3Sopenharmony_ci 70bc2ed2b3Sopenharmony_ciohos_prebuilt_etc("nfc_prebuilt_config_string_zh") { 71bc2ed2b3Sopenharmony_ci source = "res/zh/string_zh.json" 72bc2ed2b3Sopenharmony_ci relative_install_dir = "nfc" 73bc2ed2b3Sopenharmony_ci part_name = "nfc" 74bc2ed2b3Sopenharmony_ci subsystem_name = "communication" 75bc2ed2b3Sopenharmony_ci} 76bc2ed2b3Sopenharmony_ci 77bc2ed2b3Sopenharmony_ciohos_prebuilt_etc("nfc_prebuilt_config_notification_icon") { 78bc2ed2b3Sopenharmony_ci source = "res/nfc_icon.png" 79bc2ed2b3Sopenharmony_ci relative_install_dir = "nfc" 80bc2ed2b3Sopenharmony_ci part_name = "nfc" 81bc2ed2b3Sopenharmony_ci subsystem_name = "communication" 82bc2ed2b3Sopenharmony_ci} 83bc2ed2b3Sopenharmony_ci 84bc2ed2b3Sopenharmony_cinfc_service_source = [ 85bc2ed2b3Sopenharmony_ci "src/card_emulation/ce_service.cpp", 86bc2ed2b3Sopenharmony_ci "src/card_emulation/host_card_emulation_manager.cpp", 87bc2ed2b3Sopenharmony_ci "src/card_emulation/nfc_ability_connection_callback.cpp", 88bc2ed2b3Sopenharmony_ci "src/card_emulation/setting_data_share_impl.cpp", 89bc2ed2b3Sopenharmony_ci "src/external_deps/app_data_parser.cpp", 90bc2ed2b3Sopenharmony_ci "src/external_deps/external_deps_proxy.cpp", 91bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_data_share_impl.cpp", 92bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_event_publisher.cpp", 93bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_hisysevent.cpp", 94bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_notification_publisher.cpp", 95bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_param_util.cpp", 96bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_permission_checker.cpp", 97bc2ed2b3Sopenharmony_ci "src/external_deps/nfc_preferences.cpp", 98bc2ed2b3Sopenharmony_ci "src/external_deps/tag_ability_dispatcher.cpp", 99bc2ed2b3Sopenharmony_ci "src/ipc/controller/ndef_msg_callback_proxy.cpp", 100bc2ed2b3Sopenharmony_ci "src/ipc/controller/nfc_controller_callback_proxy.cpp", 101bc2ed2b3Sopenharmony_ci "src/ipc/controller/nfc_controller_death_recipient.cpp", 102bc2ed2b3Sopenharmony_ci "src/ipc/controller/nfc_controller_impl.cpp", 103bc2ed2b3Sopenharmony_ci "src/ipc/controller/nfc_controller_stub.cpp", 104bc2ed2b3Sopenharmony_ci "src/ipc/tags/foreground_callback_proxy.cpp", 105bc2ed2b3Sopenharmony_ci "src/ipc/tags/foreground_death_recipient.cpp", 106bc2ed2b3Sopenharmony_ci "src/ipc/tags/reader_mode_callback_proxy.cpp", 107bc2ed2b3Sopenharmony_ci "src/ipc/tags/reader_mode_death_recipient.cpp", 108bc2ed2b3Sopenharmony_ci "src/ipc/tags/tag_session.cpp", 109bc2ed2b3Sopenharmony_ci "src/ipc/tags/tag_session_stub.cpp", 110bc2ed2b3Sopenharmony_ci "src/nci_adapter/nci_ce_proxy.cpp", 111bc2ed2b3Sopenharmony_ci "src/nci_adapter/nci_native_selector.cpp", 112bc2ed2b3Sopenharmony_ci "src/nci_adapter/nci_nfcc_proxy.cpp", 113bc2ed2b3Sopenharmony_ci "src/nci_adapter/nci_tag_proxy.cpp", 114bc2ed2b3Sopenharmony_ci "src/nfc_event_handler.cpp", 115bc2ed2b3Sopenharmony_ci "src/nfc_polling_manager.cpp", 116bc2ed2b3Sopenharmony_ci "src/nfc_polling_params.cpp", 117bc2ed2b3Sopenharmony_ci "src/nfc_routing_manager.cpp", 118bc2ed2b3Sopenharmony_ci "src/nfc_sa_manager.cpp", 119bc2ed2b3Sopenharmony_ci "src/nfc_service.cpp", 120bc2ed2b3Sopenharmony_ci "src/utils/app_state_observer.cpp", 121bc2ed2b3Sopenharmony_ci "src/utils/nfc_timer.cpp", 122bc2ed2b3Sopenharmony_ci "src/utils/nfc_watch_dog.cpp", 123bc2ed2b3Sopenharmony_ci "src/ipc/card_emulation/hce_cmd_callback_proxy.cpp", 124bc2ed2b3Sopenharmony_ci "src/ipc/card_emulation/hce_cmd_death_recipient.cpp", 125bc2ed2b3Sopenharmony_ci "src/ipc/card_emulation/hce_session.cpp", 126bc2ed2b3Sopenharmony_ci "src/ipc/card_emulation/hce_session_stub.cpp", 127bc2ed2b3Sopenharmony_ci "src/tag/isodep_card_handler.cpp", 128bc2ed2b3Sopenharmony_ci "src/tag/ndef_har_data_parser.cpp", 129bc2ed2b3Sopenharmony_ci "src/tag/ndef_har_dispatch.cpp", 130bc2ed2b3Sopenharmony_ci "src/tag/tag_dispatcher.cpp", 131bc2ed2b3Sopenharmony_ci] 132bc2ed2b3Sopenharmony_ci 133bc2ed2b3Sopenharmony_ciif (nfc_service_feature_vendor_applications_enabled) { 134bc2ed2b3Sopenharmony_ci nfc_service_source += [ 135bc2ed2b3Sopenharmony_ci "src/ipc/controller/on_card_emulation_notify_cb_proxy.cpp", 136bc2ed2b3Sopenharmony_ci "src/ipc/controller/query_app_info_callback_proxy.cpp", 137bc2ed2b3Sopenharmony_ci ] 138bc2ed2b3Sopenharmony_ci} 139bc2ed2b3Sopenharmony_ci 140bc2ed2b3Sopenharmony_cinfc_service_external_deps = [ 141bc2ed2b3Sopenharmony_ci "ability_base:want", 142bc2ed2b3Sopenharmony_ci "ability_base:zuri", 143bc2ed2b3Sopenharmony_ci "ability_runtime:ability_manager", 144bc2ed2b3Sopenharmony_ci "ability_runtime:app_manager", 145bc2ed2b3Sopenharmony_ci "ability_runtime:dataobs_manager", 146bc2ed2b3Sopenharmony_ci "access_token:libaccesstoken_sdk", 147bc2ed2b3Sopenharmony_ci "bundle_framework:appexecfwk_base", 148bc2ed2b3Sopenharmony_ci "bundle_framework:appexecfwk_core", 149bc2ed2b3Sopenharmony_ci "c_utils:utils", 150bc2ed2b3Sopenharmony_ci "common_event_service:cesfwk_core", 151bc2ed2b3Sopenharmony_ci "common_event_service:cesfwk_innerkits", 152bc2ed2b3Sopenharmony_ci "data_share:datashare_consumer", 153bc2ed2b3Sopenharmony_ci "eventhandler:libeventhandler", 154bc2ed2b3Sopenharmony_ci "hilog:libhilog", 155bc2ed2b3Sopenharmony_ci "hisysevent:libhisysevent", 156bc2ed2b3Sopenharmony_ci "ipc:ipc_core", 157bc2ed2b3Sopenharmony_ci "miscdevice:vibrator_interface_native", 158bc2ed2b3Sopenharmony_ci "power_manager:powermgr_client", 159bc2ed2b3Sopenharmony_ci "preferences:native_preferences", 160bc2ed2b3Sopenharmony_ci "safwk:system_ability_fwk", 161bc2ed2b3Sopenharmony_ci "samgr:samgr_proxy", 162bc2ed2b3Sopenharmony_ci "screenlock_mgr:screenlock_client", 163bc2ed2b3Sopenharmony_ci] 164bc2ed2b3Sopenharmony_ci 165bc2ed2b3Sopenharmony_ciif (nfc_service_feature_ndef_wifi_enabled) { 166bc2ed2b3Sopenharmony_ci nfc_service_source += [ 167bc2ed2b3Sopenharmony_ci "src/tag/ndef_wifi_data_parser.cpp", 168bc2ed2b3Sopenharmony_ci "src/tag/wifi_connection_manager.cpp", 169bc2ed2b3Sopenharmony_ci ] 170bc2ed2b3Sopenharmony_ci nfc_service_external_deps += [ "wifi:wifi_sdk" ] 171bc2ed2b3Sopenharmony_ci} 172bc2ed2b3Sopenharmony_ci 173bc2ed2b3Sopenharmony_ciif (nfc_service_feature_ndef_bt_enabled) { 174bc2ed2b3Sopenharmony_ci nfc_service_source += [ 175bc2ed2b3Sopenharmony_ci "src/tag/ndef_bt_data_parser.cpp", 176bc2ed2b3Sopenharmony_ci "src/tag/bt_connection_manager.cpp", 177bc2ed2b3Sopenharmony_ci ] 178bc2ed2b3Sopenharmony_ci nfc_service_external_deps += [ "bluetooth:btframework" ] 179bc2ed2b3Sopenharmony_ci} 180bc2ed2b3Sopenharmony_ci 181bc2ed2b3Sopenharmony_ci####################### nfc_service ################ 182bc2ed2b3Sopenharmony_ciohos_shared_library("nfc_service") { 183bc2ed2b3Sopenharmony_ci sanitize = { 184bc2ed2b3Sopenharmony_ci cfi = true 185bc2ed2b3Sopenharmony_ci boundary_sanitize = true 186bc2ed2b3Sopenharmony_ci integer_overflow = true 187bc2ed2b3Sopenharmony_ci cfi_cross_dso = true 188bc2ed2b3Sopenharmony_ci debug = false 189bc2ed2b3Sopenharmony_ci ubsan = true 190bc2ed2b3Sopenharmony_ci } 191bc2ed2b3Sopenharmony_ci branch_protector_ret = "pac_ret" 192bc2ed2b3Sopenharmony_ci sources = nfc_service_source 193bc2ed2b3Sopenharmony_ci 194bc2ed2b3Sopenharmony_ci public_configs = [ ":nfc_config" ] 195bc2ed2b3Sopenharmony_ci 196bc2ed2b3Sopenharmony_ci # Used to control the export of dynamic library symbols. 197bc2ed2b3Sopenharmony_ci version_script = "libnfc_service_version_script.txt" 198bc2ed2b3Sopenharmony_ci 199bc2ed2b3Sopenharmony_ci deps = [ 200bc2ed2b3Sopenharmony_ci ":nfc_prebuilt_config_apdu", 201bc2ed2b3Sopenharmony_ci ":nfc_prebuilt_config_notification_icon", 202bc2ed2b3Sopenharmony_ci ":nfc_prebuilt_config_string_en", 203bc2ed2b3Sopenharmony_ci ":nfc_prebuilt_config_string_zh", 204bc2ed2b3Sopenharmony_ci "$NFC_DIR/interfaces/inner_api/common:nfc_inner_kits_common", 205bc2ed2b3Sopenharmony_ci "etc/init:etc", 206bc2ed2b3Sopenharmony_ci "src/notification:nfc_notification", 207bc2ed2b3Sopenharmony_ci "//third_party/cJSON:cjson_static", 208bc2ed2b3Sopenharmony_ci ] 209bc2ed2b3Sopenharmony_ci 210bc2ed2b3Sopenharmony_ci if (!nfc_use_vendor_nci_native) { 211bc2ed2b3Sopenharmony_ci deps += [ "src/nci_adapter/nci_native_default:nci_native_default" ] 212bc2ed2b3Sopenharmony_ci } 213bc2ed2b3Sopenharmony_ci 214bc2ed2b3Sopenharmony_ci external_deps = nfc_service_external_deps 215bc2ed2b3Sopenharmony_ci 216bc2ed2b3Sopenharmony_ci part_name = "nfc" 217bc2ed2b3Sopenharmony_ci subsystem_name = "communication" 218bc2ed2b3Sopenharmony_ci} 219bc2ed2b3Sopenharmony_ci 220bc2ed2b3Sopenharmony_ci####################### nfc_service_static ################ 221bc2ed2b3Sopenharmony_ci# Only used for unittest 222bc2ed2b3Sopenharmony_ciohos_static_library("nfc_service_static") { 223bc2ed2b3Sopenharmony_ci sanitize = { 224bc2ed2b3Sopenharmony_ci cfi = true 225bc2ed2b3Sopenharmony_ci boundary_sanitize = true 226bc2ed2b3Sopenharmony_ci integer_overflow = true 227bc2ed2b3Sopenharmony_ci cfi_cross_dso = true 228bc2ed2b3Sopenharmony_ci debug = false 229bc2ed2b3Sopenharmony_ci } 230bc2ed2b3Sopenharmony_ci sources = nfc_service_source 231bc2ed2b3Sopenharmony_ci public_configs = [ ":nfc_config" ] 232bc2ed2b3Sopenharmony_ci 233bc2ed2b3Sopenharmony_ci deps = [ 234bc2ed2b3Sopenharmony_ci "$NFC_DIR/interfaces/inner_api/common:nfc_inner_kits_common", 235bc2ed2b3Sopenharmony_ci "etc/init:etc", 236bc2ed2b3Sopenharmony_ci "//third_party/cJSON:cjson_static", 237bc2ed2b3Sopenharmony_ci ] 238bc2ed2b3Sopenharmony_ci 239bc2ed2b3Sopenharmony_ci if (!nfc_use_vendor_nci_native) { 240bc2ed2b3Sopenharmony_ci deps += [ "src/nci_adapter/nci_native_default:nci_native_default" ] 241bc2ed2b3Sopenharmony_ci } 242bc2ed2b3Sopenharmony_ci 243bc2ed2b3Sopenharmony_ci external_deps = nfc_service_external_deps 244bc2ed2b3Sopenharmony_ci 245bc2ed2b3Sopenharmony_ci part_name = "nfc" 246bc2ed2b3Sopenharmony_ci subsystem_name = "communication" 247bc2ed2b3Sopenharmony_ci} 248