18e745fdaSopenharmony_ci# Copyright (c) 2022-2024 Huawei Device Co., Ltd. 28e745fdaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 38e745fdaSopenharmony_ci# you may not use this file except in compliance with the License. 48e745fdaSopenharmony_ci# You may obtain a copy of the License at 58e745fdaSopenharmony_ci# 68e745fdaSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 78e745fdaSopenharmony_ci# 88e745fdaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 98e745fdaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 108e745fdaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 118e745fdaSopenharmony_ci# See the License for the specific language governing permissions and 128e745fdaSopenharmony_ci# limitations under the License. 138e745fdaSopenharmony_ci 148e745fdaSopenharmony_ciimport("//build/ohos.gni") 158e745fdaSopenharmony_ciimport("//foundation/communication/netmanager_ext/netmanager_ext_config.gni") 168e745fdaSopenharmony_ci 178e745fdaSopenharmony_ciconfig("net_tether_manager_config") { 188e745fdaSopenharmony_ci include_dirs = [ 198e745fdaSopenharmony_ci "$UTILS_ROOT/native/base/include", 208e745fdaSopenharmony_ci "$UTILS_ROOT/system/safwk/native/include", 218e745fdaSopenharmony_ci "$THIRD_PARTY_ROOT/openssl/include", 228e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netshareclient/include", 238e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netshareclient/include/proxy", 248e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netshareclient/include/proxy/ipccallback", 258e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/ethernetclient/include/proxy", 268e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netstatsclient/include", 278e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/include", 288e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/netshareclient/include", 298e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/netshareclient/include/proxy", 308e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/netshareclient/include/proxy/ipccallback", 318e745fdaSopenharmony_ci "$NETCONNMANAGER_COMMON_DIR/include", 328e745fdaSopenharmony_ci "$NETMANAGER_EXT_ROOT/utils/log/include", 338e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/include", 348e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/include/stub", 358e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/include/utils", 368e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_UTILS_DIR/event_report/include", 378e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/include", 388e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netconnclient/include", 398e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netmanagernative/include", 408e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/dnsresolverclient/include", 418e745fdaSopenharmony_ci "$NETSYSCONTROLLER_ROOT_DIR/include", 428e745fdaSopenharmony_ci "$BLUETOOTH_ROOT/interfaces/inner_api/include", 438e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/services/netmanagernative/include/netsys", 448e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils/common_utils/include", 458e745fdaSopenharmony_ci "$SAMGR_MANAGER_ROOT/interfaces/innerkits/samgr_proxy/include", 468e745fdaSopenharmony_ci ] 478e745fdaSopenharmony_ci if (communication_wifi_switch_enable) { 488e745fdaSopenharmony_ci include_dirs += [ 498e745fdaSopenharmony_ci "$WIFI_MANAGER_ROOT/interfaces/kits/c", 508e745fdaSopenharmony_ci "$WIFI_MANAGER_ROOT/frameworks/native/interfaces", 518e745fdaSopenharmony_ci ] 528e745fdaSopenharmony_ci } 538e745fdaSopenharmony_ci if (usb_manager_enable) { 548e745fdaSopenharmony_ci include_dirs += [ 558e745fdaSopenharmony_ci "$USB_MANAGER_ROOT/interfaces/innerkits/native/include", 568e745fdaSopenharmony_ci "$USB_MANAGER_ROOT/services/zidl/include", 578e745fdaSopenharmony_ci "$USB_MANAGER_ROOT/utils/native/include", 588e745fdaSopenharmony_ci ] 598e745fdaSopenharmony_ci } 608e745fdaSopenharmony_ci} 618e745fdaSopenharmony_ci 628e745fdaSopenharmony_ciohos_shared_library("net_tether_manager") { 638e745fdaSopenharmony_ci sanitize = { 648e745fdaSopenharmony_ci cfi = true 658e745fdaSopenharmony_ci cfi_cross_dso = true 668e745fdaSopenharmony_ci blocklist = "./cfi_blocklist.txt" 678e745fdaSopenharmony_ci debug = false 688e745fdaSopenharmony_ci } 698e745fdaSopenharmony_ci 708e745fdaSopenharmony_ci branch_protector_ret = "pac_ret" 718e745fdaSopenharmony_ci 728e745fdaSopenharmony_ci sources = [ 738e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_INNERKITS_SOURCE_DIR/src/proxy/ipccallback/sharing_event_callback_proxy.cpp", 748e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_INNERKITS_SOURCE_DIR/src/proxy/ipccallback/sharing_event_callback_stub.cpp", 758e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_configuration.cpp", 768e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_hisysevent.cpp", 778e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_main_statemachine.cpp", 788e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_service.cpp", 798e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_sub_statemachine.cpp", 808e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_tracker.cpp", 818e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_upstreammonitor.cpp", 828e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/router_advertisement_daemon.cpp", 838e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/router_advertisement_params.cpp", 848e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/stub/networkshare_service_stub.cpp", 858e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/utils/edm_parameter_utils.cpp", 868e745fdaSopenharmony_ci ] 878e745fdaSopenharmony_ci 888e745fdaSopenharmony_ci configs = [ ":net_tether_manager_config" ] 898e745fdaSopenharmony_ci 908e745fdaSopenharmony_ci deps = [ "$NETMANAGER_EXT_ROOT/utils:net_event_report" ] 918e745fdaSopenharmony_ci 928e745fdaSopenharmony_ci cflags = [ 938e745fdaSopenharmony_ci "-fvisibility=hidden", 948e745fdaSopenharmony_ci "-fdata-sections", 958e745fdaSopenharmony_ci "-ffunction-sections", 968e745fdaSopenharmony_ci "-Os", 978e745fdaSopenharmony_ci "-fstack-protector-strong", 988e745fdaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 998e745fdaSopenharmony_ci "-O2", 1008e745fdaSopenharmony_ci ] 1018e745fdaSopenharmony_ci 1028e745fdaSopenharmony_ci cflags_cc = [ 1038e745fdaSopenharmony_ci "-fvisibility-inlines-hidden", 1048e745fdaSopenharmony_ci "-Os", 1058e745fdaSopenharmony_ci "-fstack-protector-strong", 1068e745fdaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 1078e745fdaSopenharmony_ci "-O2", 1088e745fdaSopenharmony_ci ] 1098e745fdaSopenharmony_ci 1108e745fdaSopenharmony_ci ldflags = [ 1118e745fdaSopenharmony_ci "-Wl,--exclude-libs=ALL", 1128e745fdaSopenharmony_ci "-Wl,--gc-sections", 1138e745fdaSopenharmony_ci ] 1148e745fdaSopenharmony_ci 1158e745fdaSopenharmony_ci external_deps = [ 1168e745fdaSopenharmony_ci "c_utils:utils", 1178e745fdaSopenharmony_ci "dhcp:dhcp_sdk", 1188e745fdaSopenharmony_ci "eventhandler:libeventhandler", 1198e745fdaSopenharmony_ci "ffrt:libffrt", 1208e745fdaSopenharmony_ci "hicollie:libhicollie", 1218e745fdaSopenharmony_ci "init:libbeget_proxy", 1228e745fdaSopenharmony_ci "init:libbegetutil", 1238e745fdaSopenharmony_ci "ipc:ipc_core", 1248e745fdaSopenharmony_ci "netmanager_base:net_conn_manager_if", 1258e745fdaSopenharmony_ci "netmanager_base:net_data_share", 1268e745fdaSopenharmony_ci "netmanager_base:net_manager_common", 1278e745fdaSopenharmony_ci "netmanager_base:netsys_controller", 1288e745fdaSopenharmony_ci "safwk:system_ability_fwk", 1298e745fdaSopenharmony_ci ] 1308e745fdaSopenharmony_ci 1318e745fdaSopenharmony_ci defines = [] 1328e745fdaSopenharmony_ci 1338e745fdaSopenharmony_ci if (communication_wifi_switch_enable) { 1348e745fdaSopenharmony_ci defines += [ "WIFI_MODOULE" ] 1358e745fdaSopenharmony_ci external_deps += [ "wifi:wifi_sdk" ] 1368e745fdaSopenharmony_ci } 1378e745fdaSopenharmony_ci 1388e745fdaSopenharmony_ci if (usb_manager_enable) { 1398e745fdaSopenharmony_ci defines += [ "USB_MODOULE" ] 1408e745fdaSopenharmony_ci external_deps += [ 1418e745fdaSopenharmony_ci "drivers_interface_usb:usb_idl_headers", 1428e745fdaSopenharmony_ci "usb_manager:usbsrv_client", 1438e745fdaSopenharmony_ci ] 1448e745fdaSopenharmony_ci } 1458e745fdaSopenharmony_ci 1468e745fdaSopenharmony_ci if (communication_bluetooth_switch_enable) { 1478e745fdaSopenharmony_ci defines += [ "BLUETOOTH_MODOULE=1" ] 1488e745fdaSopenharmony_ci external_deps += [ "bluetooth:btframework" ] 1498e745fdaSopenharmony_ci } 1508e745fdaSopenharmony_ci 1518e745fdaSopenharmony_ci defines += [ 1528e745fdaSopenharmony_ci "NETMGR_LOG_TAG = \"NetworkShareManager\"", 1538e745fdaSopenharmony_ci "LOG_DOMAIN = 0xD0015B0", 1548e745fdaSopenharmony_ci "NETWORK_SHARING_CONFIG_PATH = \"/system/etc/communication/netmanager_ext/network_share_config.cfg\"", 1558e745fdaSopenharmony_ci ] 1568e745fdaSopenharmony_ci 1578e745fdaSopenharmony_ci if (enable_netmgr_ext_debug) { 1588e745fdaSopenharmony_ci defines += [ "NETMGR_DEBUG" ] 1598e745fdaSopenharmony_ci } 1608e745fdaSopenharmony_ci 1618e745fdaSopenharmony_ci external_deps += [ "hilog:libhilog" ] 1628e745fdaSopenharmony_ci 1638e745fdaSopenharmony_ci part_name = "netmanager_ext" 1648e745fdaSopenharmony_ci subsystem_name = "communication" 1658e745fdaSopenharmony_ci} 1668e745fdaSopenharmony_ci 1678e745fdaSopenharmony_ciohos_static_library("net_tether_manager_static") { 1688e745fdaSopenharmony_ci testonly = true 1698e745fdaSopenharmony_ci sanitize = { 1708e745fdaSopenharmony_ci cfi = true 1718e745fdaSopenharmony_ci cfi_cross_dso = true 1728e745fdaSopenharmony_ci blocklist = "./cfi_blocklist.txt" 1738e745fdaSopenharmony_ci debug = false 1748e745fdaSopenharmony_ci } 1758e745fdaSopenharmony_ci 1768e745fdaSopenharmony_ci branch_protector_ret = "pac_ret" 1778e745fdaSopenharmony_ci 1788e745fdaSopenharmony_ci sources = [ 1798e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_INNERKITS_SOURCE_DIR/src/proxy/ipccallback/sharing_event_callback_proxy.cpp", 1808e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_INNERKITS_SOURCE_DIR/src/proxy/ipccallback/sharing_event_callback_stub.cpp", 1818e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_configuration.cpp", 1828e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_hisysevent.cpp", 1838e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_main_statemachine.cpp", 1848e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_service.cpp", 1858e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_sub_statemachine.cpp", 1868e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_tracker.cpp", 1878e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/networkshare_upstreammonitor.cpp", 1888e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/router_advertisement_daemon.cpp", 1898e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/router_advertisement_params.cpp", 1908e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/stub/networkshare_service_stub.cpp", 1918e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_SOURCE_DIR/src/utils/edm_parameter_utils.cpp", 1928e745fdaSopenharmony_ci ] 1938e745fdaSopenharmony_ci 1948e745fdaSopenharmony_ci configs = [ ":net_tether_manager_config" ] 1958e745fdaSopenharmony_ci 1968e745fdaSopenharmony_ci deps = [ 1978e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netconnclient:net_conn_manager_if", 1988e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils:net_data_share", 1998e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils:net_manager_common", 2008e745fdaSopenharmony_ci "$NETMANAGER_EXT_ROOT/utils:net_event_report", 2018e745fdaSopenharmony_ci "$NETSYSCONTROLLER_ROOT_DIR:netsys_controller", 2028e745fdaSopenharmony_ci ] 2038e745fdaSopenharmony_ci 2048e745fdaSopenharmony_ci external_deps = [ 2058e745fdaSopenharmony_ci "c_utils:utils", 2068e745fdaSopenharmony_ci "dhcp:dhcp_sdk", 2078e745fdaSopenharmony_ci "eventhandler:libeventhandler", 2088e745fdaSopenharmony_ci "ffrt:libffrt", 2098e745fdaSopenharmony_ci "hicollie:libhicollie", 2108e745fdaSopenharmony_ci "init:libbeget_proxy", 2118e745fdaSopenharmony_ci "init:libbegetutil", 2128e745fdaSopenharmony_ci "ipc:ipc_core", 2138e745fdaSopenharmony_ci "safwk:system_ability_fwk", 2148e745fdaSopenharmony_ci ] 2158e745fdaSopenharmony_ci 2168e745fdaSopenharmony_ci defines = [] 2178e745fdaSopenharmony_ci 2188e745fdaSopenharmony_ci if (communication_wifi_switch_enable) { 2198e745fdaSopenharmony_ci defines += [ "WIFI_MODOULE" ] 2208e745fdaSopenharmony_ci external_deps += [ "wifi:wifi_sdk" ] 2218e745fdaSopenharmony_ci } 2228e745fdaSopenharmony_ci 2238e745fdaSopenharmony_ci if (usb_manager_enable) { 2248e745fdaSopenharmony_ci defines += [ "USB_MODOULE" ] 2258e745fdaSopenharmony_ci external_deps += [ 2268e745fdaSopenharmony_ci "drivers_interface_usb:usb_idl_headers", 2278e745fdaSopenharmony_ci "usb_manager:usbsrv_client", 2288e745fdaSopenharmony_ci ] 2298e745fdaSopenharmony_ci } 2308e745fdaSopenharmony_ci 2318e745fdaSopenharmony_ci if (communication_bluetooth_switch_enable) { 2328e745fdaSopenharmony_ci defines += [ "BLUETOOTH_MODOULE=1" ] 2338e745fdaSopenharmony_ci external_deps += [ "bluetooth:btframework" ] 2348e745fdaSopenharmony_ci } 2358e745fdaSopenharmony_ci 2368e745fdaSopenharmony_ci defines += [ 2378e745fdaSopenharmony_ci "NETMGR_LOG_TAG = \"NetworkShareManager\"", 2388e745fdaSopenharmony_ci "LOG_DOMAIN = 0xD0015B0", 2398e745fdaSopenharmony_ci "NETWORK_SHARING_CONFIG_PATH = \"/system/etc/communication/netmanager_ext/network_share_config.cfg\"", 2408e745fdaSopenharmony_ci ] 2418e745fdaSopenharmony_ci 2428e745fdaSopenharmony_ci if (enable_netmgr_ext_debug) { 2438e745fdaSopenharmony_ci defines += [ "NETMGR_DEBUG" ] 2448e745fdaSopenharmony_ci } 2458e745fdaSopenharmony_ci 2468e745fdaSopenharmony_ci external_deps += [ "hilog:libhilog" ] 2478e745fdaSopenharmony_ci 2488e745fdaSopenharmony_ci part_name = "netmanager_ext" 2498e745fdaSopenharmony_ci subsystem_name = "communication" 2508e745fdaSopenharmony_ci} 2518e745fdaSopenharmony_ci 2528e745fdaSopenharmony_ci## Install network_share_config.cfg to /system/etc/communication/netmanager_ext 2538e745fdaSopenharmony_ciohos_prebuilt_etc("network_share_config") { 2548e745fdaSopenharmony_ci source = "$NETMANAGER_EXT_ROOT/services/networksharemanager/network_share_config.cfg" 2558e745fdaSopenharmony_ci install_enable = true 2568e745fdaSopenharmony_ci relative_install_dir = "communication/netmanager_ext" 2578e745fdaSopenharmony_ci part_name = "netmanager_ext" 2588e745fdaSopenharmony_ci} 259