18e745fdaSopenharmony_ci# Copyright (c) 2023-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_vpn_manager_config") { 188e745fdaSopenharmony_ci include_dirs = [ 198e745fdaSopenharmony_ci "$UTILS_ROOT/native/base/include", 208e745fdaSopenharmony_ci "$UTILS_ROOT/system/safwk/native/include", 218e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/include", 228e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/netvpnclient/include", 238e745fdaSopenharmony_ci "$EXT_INNERKITS_ROOT/netvpnclient/include/ipc", 248e745fdaSopenharmony_ci "$NETCONNMANAGER_COMMON_DIR/include", 258e745fdaSopenharmony_ci "$NETMANAGER_EXT_ROOT/utils/log/include", 268e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/include", 278e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/include/ipc", 288e745fdaSopenharmony_ci "$NETWORKSHAREMANAGER_UTILS_DIR/event_report/include", 298e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/include", 308e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netconnclient/include", 318e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netsyscontroller/include", 328e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netmanagernative/include", 338e745fdaSopenharmony_ci "$NETMANAGERNATIVE_ROOT/include/netsys", 348e745fdaSopenharmony_ci "$NETSYSCONTROLLER_ROOT_DIR/include", 358e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils/common_utils/include", 368e745fdaSopenharmony_ci "$SAMGR_MANAGER_ROOT/interfaces/innerkits/samgr_proxy/include", 378e745fdaSopenharmony_ci "$NETMANAGER_EXT_ROOT/frameworks/js/napi/vpnext/include", 388e745fdaSopenharmony_ci ] 398e745fdaSopenharmony_ci 408e745fdaSopenharmony_ci defines = [ 418e745fdaSopenharmony_ci "NETMGR_LOG_TAG = \"NetworkVpnManager\"", 428e745fdaSopenharmony_ci "LOG_DOMAIN = 0xD0015B0", 438e745fdaSopenharmony_ci ] 448e745fdaSopenharmony_ci 458e745fdaSopenharmony_ci if (enable_netmgr_ext_debug) { 468e745fdaSopenharmony_ci defines += [ "NETMGR_DEBUG" ] 478e745fdaSopenharmony_ci } 488e745fdaSopenharmony_ci} 498e745fdaSopenharmony_ci 508e745fdaSopenharmony_cinet_vpn_manager_sources = [ 518e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/extended_vpn_ctl.cpp", 528e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/ipc/networkvpn_service_stub.cpp", 538e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/ipc/vpn_event_callback_proxy.cpp", 548e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/net_vpn_impl.cpp", 558e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/networkvpn_hisysevent.cpp", 568e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/networkvpn_service.cpp", 578e745fdaSopenharmony_ci "$VPN_INNERKITS_SOURCE_DIR/src/vpn_config.cpp", 588e745fdaSopenharmony_ci] 598e745fdaSopenharmony_ci 608e745fdaSopenharmony_ciif (netmanager_ext_feature_sysvpn) { 618e745fdaSopenharmony_ci net_vpn_manager_sources += [ 628e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/vpn_database_helper.cpp", 638e745fdaSopenharmony_ci "$VPN_INNERKITS_SOURCE_DIR/src/ipsecvpn_config.cpp", 648e745fdaSopenharmony_ci "$VPN_INNERKITS_SOURCE_DIR/src/l2tpvpn_config.cpp", 658e745fdaSopenharmony_ci "$VPN_INNERKITS_SOURCE_DIR/src/openvpn_config.cpp", 668e745fdaSopenharmony_ci "$VPN_INNERKITS_SOURCE_DIR/src/sysvpn_config.cpp", 678e745fdaSopenharmony_ci "$VPN_INNERKITS_SOURCE_DIR/src/vpn_data_bean.cpp", 688e745fdaSopenharmony_ci ] 698e745fdaSopenharmony_ci} 708e745fdaSopenharmony_ci 718e745fdaSopenharmony_cinet_vpn_manager_deps = [ "$NETMANAGER_EXT_ROOT/utils:net_event_report" ] 728e745fdaSopenharmony_ci 738e745fdaSopenharmony_cinet_vpn_manager_external_deps = [ 748e745fdaSopenharmony_ci "ability_base:want", 758e745fdaSopenharmony_ci "ability_base:zuri", 768e745fdaSopenharmony_ci "ability_runtime:ability_manager", 778e745fdaSopenharmony_ci "ability_runtime:app_manager", 788e745fdaSopenharmony_ci "bundle_framework:appexecfwk_base", 798e745fdaSopenharmony_ci "bundle_framework:appexecfwk_core", 808e745fdaSopenharmony_ci "cJSON:cjson", 818e745fdaSopenharmony_ci "c_utils:utils", 828e745fdaSopenharmony_ci "common_event_service:cesfwk_innerkits", 838e745fdaSopenharmony_ci "eventhandler:libeventhandler", 848e745fdaSopenharmony_ci "ffrt:libffrt", 858e745fdaSopenharmony_ci "hilog:libhilog", 868e745fdaSopenharmony_ci "hisysevent:libhisysevent", 878e745fdaSopenharmony_ci "ipc:ipc_core", 888e745fdaSopenharmony_ci "netmanager_base:net_conn_manager_if", 898e745fdaSopenharmony_ci "netmanager_base:net_data_share", 908e745fdaSopenharmony_ci "netmanager_base:net_manager_common", 918e745fdaSopenharmony_ci "netmanager_base:netsys_controller", 928e745fdaSopenharmony_ci "os_account:os_account_innerkits", 938e745fdaSopenharmony_ci "relational_store:native_rdb", 948e745fdaSopenharmony_ci "safwk:system_ability_fwk", 958e745fdaSopenharmony_ci "samgr:samgr_proxy", 968e745fdaSopenharmony_ci] 978e745fdaSopenharmony_ci 988e745fdaSopenharmony_ciohos_shared_library("net_vpn_manager") { 998e745fdaSopenharmony_ci sanitize = { 1008e745fdaSopenharmony_ci cfi = true 1018e745fdaSopenharmony_ci cfi_cross_dso = true 1028e745fdaSopenharmony_ci blocklist = "./cfi_blocklist.txt" 1038e745fdaSopenharmony_ci debug = false 1048e745fdaSopenharmony_ci } 1058e745fdaSopenharmony_ci 1068e745fdaSopenharmony_ci branch_protector_ret = "pac_ret" 1078e745fdaSopenharmony_ci 1088e745fdaSopenharmony_ci configs = [ ":net_vpn_manager_config" ] 1098e745fdaSopenharmony_ci 1108e745fdaSopenharmony_ci defines = [] 1118e745fdaSopenharmony_ci if (netmanager_ext_feature_vpn_for_user0) { 1128e745fdaSopenharmony_ci defines += [ "ENABLE_VPN_FOR_USER0" ] 1138e745fdaSopenharmony_ci } 1148e745fdaSopenharmony_ci 1158e745fdaSopenharmony_ci sources = net_vpn_manager_sources 1168e745fdaSopenharmony_ci deps = net_vpn_manager_deps 1178e745fdaSopenharmony_ci external_deps = net_vpn_manager_external_deps 1188e745fdaSopenharmony_ci 1198e745fdaSopenharmony_ci cflags = memory_optimization_cflags 1208e745fdaSopenharmony_ci cflags += [ 1218e745fdaSopenharmony_ci "-fstack-protector-strong", 1228e745fdaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 1238e745fdaSopenharmony_ci "-O2", 1248e745fdaSopenharmony_ci ] 1258e745fdaSopenharmony_ci defines = [] 1268e745fdaSopenharmony_ci if (netmanager_ext_feature_vpn_for_user0) { 1278e745fdaSopenharmony_ci defines += [ "ENABLE_VPN_FOR_USER0" ] 1288e745fdaSopenharmony_ci } 1298e745fdaSopenharmony_ci cflags_cc = memory_optimization_cflags_cc 1308e745fdaSopenharmony_ci cflags_cc += [ 1318e745fdaSopenharmony_ci "-fstack-protector-strong", 1328e745fdaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 1338e745fdaSopenharmony_ci "-O2", 1348e745fdaSopenharmony_ci ] 1358e745fdaSopenharmony_ci 1368e745fdaSopenharmony_ci if (netmanager_ext_feature_sysvpn) { 1378e745fdaSopenharmony_ci cflags += sysvpn_flags 1388e745fdaSopenharmony_ci cflags_cc += sysvpn_flags 1398e745fdaSopenharmony_ci sources += [ 1408e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/ipsec_vpn_ctl.cpp", 1418e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/l2tp_vpn_ctl.cpp", 1428e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/open_vpn_ctl.cpp", 1438e745fdaSopenharmony_ci ] 1448e745fdaSopenharmony_ci } 1458e745fdaSopenharmony_ci 1468e745fdaSopenharmony_ci ldflags = memory_optimization_ldflags 1478e745fdaSopenharmony_ci 1488e745fdaSopenharmony_ci part_name = "netmanager_ext" 1498e745fdaSopenharmony_ci subsystem_name = "communication" 1508e745fdaSopenharmony_ci} 1518e745fdaSopenharmony_ci 1528e745fdaSopenharmony_ciohos_static_library("net_vpn_manager_static") { 1538e745fdaSopenharmony_ci sanitize = { 1548e745fdaSopenharmony_ci cfi = true 1558e745fdaSopenharmony_ci cfi_cross_dso = true 1568e745fdaSopenharmony_ci blocklist = "./cfi_blocklist.txt" 1578e745fdaSopenharmony_ci debug = false 1588e745fdaSopenharmony_ci } 1598e745fdaSopenharmony_ci 1608e745fdaSopenharmony_ci branch_protector_ret = "pac_ret" 1618e745fdaSopenharmony_ci 1628e745fdaSopenharmony_ci configs = [ ":net_vpn_manager_config" ] 1638e745fdaSopenharmony_ci 1648e745fdaSopenharmony_ci sources = net_vpn_manager_sources 1658e745fdaSopenharmony_ci 1668e745fdaSopenharmony_ci if (netmanager_ext_feature_sysvpn) { 1678e745fdaSopenharmony_ci cflags = sysvpn_flags 1688e745fdaSopenharmony_ci cflags_cc = sysvpn_flags 1698e745fdaSopenharmony_ci sources += [ 1708e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/ipsec_vpn_ctl.cpp", 1718e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/l2tp_vpn_ctl.cpp", 1728e745fdaSopenharmony_ci "$VPNMANAGER_SOURCE_DIR/src/open_vpn_ctl.cpp", 1738e745fdaSopenharmony_ci ] 1748e745fdaSopenharmony_ci } 1758e745fdaSopenharmony_ci 1768e745fdaSopenharmony_ci deps = net_vpn_manager_deps 1778e745fdaSopenharmony_ci external_deps = net_vpn_manager_external_deps 1788e745fdaSopenharmony_ci 1798e745fdaSopenharmony_ci part_name = "netmanager_ext" 1808e745fdaSopenharmony_ci subsystem_name = "communication" 1818e745fdaSopenharmony_ci} 182