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_ciNETMANAGER_EXT_NAPI_ROOT = "$NETMANAGER_EXT_ROOT/frameworks/js/napi/" 188e745fdaSopenharmony_ci 198e745fdaSopenharmony_ciohos_shared_library("vpn") { 208e745fdaSopenharmony_ci sanitize = { 218e745fdaSopenharmony_ci cfi = true 228e745fdaSopenharmony_ci cfi_cross_dso = true 238e745fdaSopenharmony_ci debug = false 248e745fdaSopenharmony_ci } 258e745fdaSopenharmony_ci 268e745fdaSopenharmony_ci branch_protector_ret = "pac_ret" 278e745fdaSopenharmony_ci 288e745fdaSopenharmony_ci sources = [ 298e745fdaSopenharmony_ci "src/context/destroy_context.cpp", 308e745fdaSopenharmony_ci "src/context/prepare_context.cpp", 318e745fdaSopenharmony_ci "src/context/protect_context.cpp", 328e745fdaSopenharmony_ci "src/context/setup_context.cpp", 338e745fdaSopenharmony_ci "src/vpn_async_work.cpp", 348e745fdaSopenharmony_ci "src/vpn_connection.cpp", 358e745fdaSopenharmony_ci "src/vpn_exec.cpp", 368e745fdaSopenharmony_ci "src/vpn_module.cpp", 378e745fdaSopenharmony_ci "src/vpn_monitor.cpp", 388e745fdaSopenharmony_ci ] 398e745fdaSopenharmony_ci 408e745fdaSopenharmony_ci include_dirs = [ 418e745fdaSopenharmony_ci "$NETMANAGER_EXT_NAPI_ROOT/vpn/include", 428e745fdaSopenharmony_ci "$NETMANAGER_EXT_NAPI_ROOT/vpn/include/context", 438e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils/common_utils/include", 448e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils/errorcode_utils/include", 458e745fdaSopenharmony_ci "$NETMANAGER_BASE_ROOT/utils/napi_utils/include", 468e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netvpnclient/include", 478e745fdaSopenharmony_ci "$BASE_INNERKITS_ROOT/netvpnclient/include/ipc", 488e745fdaSopenharmony_ci ] 498e745fdaSopenharmony_ci 508e745fdaSopenharmony_ci cflags = [ 518e745fdaSopenharmony_ci "-fstack-protector-strong", 528e745fdaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 538e745fdaSopenharmony_ci "-O2", 548e745fdaSopenharmony_ci ] 558e745fdaSopenharmony_ci 568e745fdaSopenharmony_ci cflags_cc = [ 578e745fdaSopenharmony_ci "-fstack-protector-strong", 588e745fdaSopenharmony_ci "-D_FORTIFY_SOURCE=2", 598e745fdaSopenharmony_ci "-O2", 608e745fdaSopenharmony_ci ] 618e745fdaSopenharmony_ci 628e745fdaSopenharmony_ci if (netmanager_ext_feature_sysvpn) { 638e745fdaSopenharmony_ci cflags += sysvpn_flags 648e745fdaSopenharmony_ci cflags_cc += sysvpn_flags 658e745fdaSopenharmony_ci sources += [ 668e745fdaSopenharmony_ci "src/context/add_context.cpp", 678e745fdaSopenharmony_ci "src/context/delete_context.cpp", 688e745fdaSopenharmony_ci "src/context/get_connected_context.cpp", 698e745fdaSopenharmony_ci "src/context/get_context.cpp", 708e745fdaSopenharmony_ci "src/context/get_list_context.cpp", 718e745fdaSopenharmony_ci "src/vpn_config_utils.cpp", 728e745fdaSopenharmony_ci ] 738e745fdaSopenharmony_ci } 748e745fdaSopenharmony_ci 758e745fdaSopenharmony_ci deps = [ 768e745fdaSopenharmony_ci "$NETMANAGER_EXT_ROOT/interfaces/innerkits/netvpnclient:net_vpn_manager_if", 778e745fdaSopenharmony_ci "$NETMANAGER_EXT_ROOT/utils:net_manager_ext_common", 788e745fdaSopenharmony_ci ] 798e745fdaSopenharmony_ci 808e745fdaSopenharmony_ci external_deps = [ 818e745fdaSopenharmony_ci "c_utils:utils", 828e745fdaSopenharmony_ci "hilog:libhilog", 838e745fdaSopenharmony_ci "ipc:ipc_core", 848e745fdaSopenharmony_ci "napi:ace_napi", 858e745fdaSopenharmony_ci "netmanager_base:napi_utils", 868e745fdaSopenharmony_ci "netmanager_base:net_manager_common", 878e745fdaSopenharmony_ci ] 888e745fdaSopenharmony_ci 898e745fdaSopenharmony_ci relative_install_dir = "module/net" 908e745fdaSopenharmony_ci part_name = "netmanager_ext" 918e745fdaSopenharmony_ci subsystem_name = "communication" 928e745fdaSopenharmony_ci} 93