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("websocket_client_config") { 181e934351Sopenharmony_ci # header file path 191e934351Sopenharmony_ci include_dirs = [ 201e934351Sopenharmony_ci "$THIRD_PARTY_ROOT/libwebsockets/include", 211e934351Sopenharmony_ci "$NETSTACK_DIR/interfaces/innerkits/websocket_client/include", 221e934351Sopenharmony_ci ] 231e934351Sopenharmony_ci 241e934351Sopenharmony_ci cflags = [] 251e934351Sopenharmony_ci if (is_double_framework) { 261e934351Sopenharmony_ci cflags += [ "-DCONFIG_DUAL_FRAMEWORK" ] 271e934351Sopenharmony_ci } 281e934351Sopenharmony_ci if (target_cpu == "arm") { 291e934351Sopenharmony_ci cflags += [ "-DBINDER_IPC_32BIT" ] 301e934351Sopenharmony_ci } 311e934351Sopenharmony_ci if (is_standard_system) { 321e934351Sopenharmony_ci cflags += [ "-DCONFIG_STANDARD_SYSTEM" ] 331e934351Sopenharmony_ci } 341e934351Sopenharmony_ci if (defined(build_public_version) && build_public_version) { 351e934351Sopenharmony_ci cflags += [ "-DBUILD_PUBLIC_VERSION" ] 361e934351Sopenharmony_ci } 371e934351Sopenharmony_ci 381e934351Sopenharmony_ci if (is_mingw) { 391e934351Sopenharmony_ci defines = [ "WINDOWS_PLATFORM" ] 401e934351Sopenharmony_ci } else if (is_mac) { 411e934351Sopenharmony_ci defines = [ "MAC_PLATFORM" ] 421e934351Sopenharmony_ci } 431e934351Sopenharmony_ci} 441e934351Sopenharmony_ci 451e934351Sopenharmony_ciohos_shared_library("websocket_client") { 461e934351Sopenharmony_ci sanitize = { 471e934351Sopenharmony_ci cfi = true 481e934351Sopenharmony_ci cfi_cross_dso = true 491e934351Sopenharmony_ci debug = false 501e934351Sopenharmony_ci } 511e934351Sopenharmony_ci 521e934351Sopenharmony_ci branch_protector_ret = "pac_ret" 531e934351Sopenharmony_ci 541e934351Sopenharmony_ci sources = [ "$NETSTACK_NATIVE_ROOT/websocket_client/websocket_client.cpp" ] 551e934351Sopenharmony_ci 561e934351Sopenharmony_ci include_dirs = [ 571e934351Sopenharmony_ci "$NETSTACK_DIR/utils/common_utils/include", 581e934351Sopenharmony_ci "$NETSTACK_DIR/utils/log/include", 591e934351Sopenharmony_ci "$NETSTACK_NATIVE_ROOT/websocket_client/include", 601e934351Sopenharmony_ci ] 611e934351Sopenharmony_ci 621e934351Sopenharmony_ci cflags = [ 631e934351Sopenharmony_ci "-fstack-protector-strong", 641e934351Sopenharmony_ci "-D_FORTIFY_SOURCE=2", 651e934351Sopenharmony_ci "-O2", 661e934351Sopenharmony_ci ] 671e934351Sopenharmony_ci cflags_cc = [ 681e934351Sopenharmony_ci "-fstack-protector-strong", 691e934351Sopenharmony_ci "-D_FORTIFY_SOURCE=2", 701e934351Sopenharmony_ci "-O2", 711e934351Sopenharmony_ci ] 721e934351Sopenharmony_ci 731e934351Sopenharmony_ci version_script = "libwebsocket_client.map" 741e934351Sopenharmony_ci 751e934351Sopenharmony_ci public_configs = [ ":websocket_client_config" ] 761e934351Sopenharmony_ci 771e934351Sopenharmony_ci defines = [ "OHOS_LIBWEBSOCKETS=1" ] 781e934351Sopenharmony_ci 791e934351Sopenharmony_ci deps = [ 801e934351Sopenharmony_ci "$NETSTACK_DIR/utils:stack_utils_common", 811e934351Sopenharmony_ci "$NETSTACK_DIR/utils/napi_utils:napi_utils", 821e934351Sopenharmony_ci "$THIRD_PARTY_ROOT/libwebsockets:websockets", 831e934351Sopenharmony_ci ] 841e934351Sopenharmony_ci external_deps = [ "openssl:libssl_shared" ] 851e934351Sopenharmony_ci if (is_mingw || is_mac) { 861e934351Sopenharmony_ci sources += 871e934351Sopenharmony_ci [ "$NETSTACK_DIR/utils/common_utils/src/netstack_common_utils.cpp" ] 881e934351Sopenharmony_ci } else { 891e934351Sopenharmony_ci deps += [ "$NETSTACK_DIR/utils:stack_utils_common" ] 901e934351Sopenharmony_ci external_deps += [ "hilog:libhilog" ] 911e934351Sopenharmony_ci if (product_name != "ohos-sdk") { 921e934351Sopenharmony_ci external_deps += [ "init:libbegetutil" ] 931e934351Sopenharmony_ci } 941e934351Sopenharmony_ci } 951e934351Sopenharmony_ci 961e934351Sopenharmony_ci innerapi_tags = [ "platformsdk" ] 971e934351Sopenharmony_ci part_name = "netstack" 981e934351Sopenharmony_ci subsystem_name = "communication" 991e934351Sopenharmony_ci} 100