11e934351Sopenharmony_ci# Copyright (c) 2023-2024 Huawei Device Co., Ltd. 21e934351Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 31e934351Sopenharmony_ci# you may not use this file except in compliance with the License. 41e934351Sopenharmony_ci# You may obtain a copy of the License at 51e934351Sopenharmony_ci# 61e934351Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 71e934351Sopenharmony_ci# 81e934351Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 91e934351Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 101e934351Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 111e934351Sopenharmony_ci# See the License for the specific language governing permissions and 121e934351Sopenharmony_ci# limitations under the License. 131e934351Sopenharmony_ci 141e934351Sopenharmony_ciimport("//build/ohos.gni") 151e934351Sopenharmony_ciimport("//foundation/communication/netstack/netstack_config.gni") 161e934351Sopenharmony_ci 171e934351Sopenharmony_ciconfig("networksecurity_napi_config") { 181e934351Sopenharmony_ci include_dirs = [ 191e934351Sopenharmony_ci "async_context/include", 201e934351Sopenharmony_ci "async_work/include", 211e934351Sopenharmony_ci "net_ssl_exec/include", 221e934351Sopenharmony_ci "net_ssl_module/include", 231e934351Sopenharmony_ci "$THIRD_PARTY_ROOT/openssl/include", 241e934351Sopenharmony_ci "$NETSTACK_DIR/frameworks/native/net_ssl/include", 251e934351Sopenharmony_ci "$NETSTACK_DIR/interfaces/innerkits/net_ssl/include", 261e934351Sopenharmony_ci "$NETSTACK_DIR/utils/common_utils/include", 271e934351Sopenharmony_ci ] 281e934351Sopenharmony_ci 291e934351Sopenharmony_ci if (is_mingw || is_mac) { 301e934351Sopenharmony_ci cflags = [ 311e934351Sopenharmony_ci "-std=c++17", 321e934351Sopenharmony_ci "-stdlib=libc++", 331e934351Sopenharmony_ci ] 341e934351Sopenharmony_ci } 351e934351Sopenharmony_ci if (is_mingw) { 361e934351Sopenharmony_ci defines = [ "WINDOWS_PLATFORM" ] 371e934351Sopenharmony_ci } else if (is_mac) { 381e934351Sopenharmony_ci defines = [ "MAC_PLATFORM" ] 391e934351Sopenharmony_ci } 401e934351Sopenharmony_ci} 411e934351Sopenharmony_ci 421e934351Sopenharmony_ciohos_shared_library("networksecurity_napi") { 431e934351Sopenharmony_ci sanitize = { 441e934351Sopenharmony_ci cfi = true 451e934351Sopenharmony_ci cfi_cross_dso = true 461e934351Sopenharmony_ci debug = false 471e934351Sopenharmony_ci } 481e934351Sopenharmony_ci 491e934351Sopenharmony_ci branch_protector_ret = "pac_ret" 501e934351Sopenharmony_ci 511e934351Sopenharmony_ci sources = [ 521e934351Sopenharmony_ci "async_context/src/cert_context.cpp", 531e934351Sopenharmony_ci "async_work/src/net_ssl_async_work.cpp", 541e934351Sopenharmony_ci "net_ssl_exec/src/net_ssl_exec.cpp", 551e934351Sopenharmony_ci "net_ssl_module/src/net_ssl_module.cpp", 561e934351Sopenharmony_ci ] 571e934351Sopenharmony_ci cflags = [ 581e934351Sopenharmony_ci "-fstack-protector-strong", 591e934351Sopenharmony_ci "-D_FORTIFY_SOURCE=2", 601e934351Sopenharmony_ci "-O2", 611e934351Sopenharmony_ci ] 621e934351Sopenharmony_ci cflags_cc = [ 631e934351Sopenharmony_ci "-fstack-protector-strong", 641e934351Sopenharmony_ci "-D_FORTIFY_SOURCE=2", 651e934351Sopenharmony_ci "-O2", 661e934351Sopenharmony_ci ] 671e934351Sopenharmony_ci 681e934351Sopenharmony_ci configs = [ ":networksecurity_napi_config" ] 691e934351Sopenharmony_ci 701e934351Sopenharmony_ci deps = [] 711e934351Sopenharmony_ci if (is_mingw || is_mac) { 721e934351Sopenharmony_ci sources += 731e934351Sopenharmony_ci [ "$NETSTACK_DIR/utils/common_utils/src/netstack_common_utils.cpp" ] 741e934351Sopenharmony_ci deps += [ 751e934351Sopenharmony_ci "$ARKUI_ROOT/napi:ace_napi", 761e934351Sopenharmony_ci "$NETSTACK_DIR/utils/napi_utils:napi_utils_static", 771e934351Sopenharmony_ci ] 781e934351Sopenharmony_ci } else { 791e934351Sopenharmony_ci deps += [ 801e934351Sopenharmony_ci "$NETSTACK_DIR/interfaces/innerkits/net_ssl:net_ssl", 811e934351Sopenharmony_ci "$NETSTACK_DIR/utils:stack_utils_common", 821e934351Sopenharmony_ci "$NETSTACK_DIR/utils/napi_utils:napi_utils", 831e934351Sopenharmony_ci ] 841e934351Sopenharmony_ci external_deps = [ 851e934351Sopenharmony_ci "hilog:libhilog", 861e934351Sopenharmony_ci "napi:ace_napi", 871e934351Sopenharmony_ci "openssl:libcrypto_shared", 881e934351Sopenharmony_ci "openssl:libssl_shared", 891e934351Sopenharmony_ci ] 901e934351Sopenharmony_ci } 911e934351Sopenharmony_ci defines = [] 921e934351Sopenharmony_ci if (defined(global_parts_info) && 931e934351Sopenharmony_ci defined(global_parts_info.communication_netmanager_base) && 941e934351Sopenharmony_ci global_parts_info.communication_netmanager_base) { 951e934351Sopenharmony_ci external_deps += [ "netmanager_base:net_conn_manager_if" ] 961e934351Sopenharmony_ci defines += [ "HAS_NETMANAGER_BASE=1" ] 971e934351Sopenharmony_ci } else { 981e934351Sopenharmony_ci defines += [ "HAS_NETMANAGER_BASE=0" ] 991e934351Sopenharmony_ci } 1001e934351Sopenharmony_ci 1011e934351Sopenharmony_ci relative_install_dir = "module/net" 1021e934351Sopenharmony_ci part_name = "netstack" 1031e934351Sopenharmony_ci subsystem_name = "communication" 1041e934351Sopenharmony_ci} 105