diff --git a/BUILD.gn b/BUILD.gn index 62c0477f39d15424b947a3ba54147dd3fe9dd16d..d3309d557bac1dcb9a2faa27109ea7c4907785d5 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -15,6 +15,11 @@ import("//build/ohos.gni") platform = "${current_os}_${current_cpu}" +if (target_os == "ios") { + libwebsockets_path = rebase_path("//third_party/libwebsockets") + exec_script("for_ios.sh", [ "$libwebsockets_path" ]) +} + ohos_static_library("websockets") { sources = [ "//third_party/libwebsockets/lib/core-net/adopt.c", @@ -30,11 +35,9 @@ ohos_static_library("websockets") { "//third_party/libwebsockets/lib/core-net/network.c", "//third_party/libwebsockets/lib/core-net/output.c", "//third_party/libwebsockets/lib/core-net/pollfd.c", - "//third_party/libwebsockets/lib/core-net/route.c", "//third_party/libwebsockets/lib/core-net/service.c", "//third_party/libwebsockets/lib/core-net/sorted-usec-list.c", "//third_party/libwebsockets/lib/core-net/state.c", - "//third_party/libwebsockets/lib/core-net/vhost.c", "//third_party/libwebsockets/lib/core-net/wsi-timeout.c", "//third_party/libwebsockets/lib/core-net/wsi.c", "//third_party/libwebsockets/lib/core/alloc.c", @@ -78,7 +81,6 @@ ohos_static_library("websockets") { "//third_party/libwebsockets/lib/roles/http/server/lws-spa.c", "//third_party/libwebsockets/lib/roles/http/server/server.c", "//third_party/libwebsockets/lib/roles/listen/ops-listen.c", - "//third_party/libwebsockets/lib/roles/netlink/ops-netlink.c", "//third_party/libwebsockets/lib/roles/pipe/ops-pipe.c", "//third_party/libwebsockets/lib/roles/raw-file/ops-raw-file.c", "//third_party/libwebsockets/lib/roles/raw-skt/ops-raw-skt.c", @@ -104,6 +106,13 @@ ohos_static_library("websockets") { part_name = "libwebsockets" subsystem_name = "thirdparty" + if (target_os != "ios") { + sources += [ + "//third_party/libwebsockets/lib/core-net/route.c", + "//third_party/libwebsockets/lib/roles/netlink/ops-netlink.c", + ] + } + include_dirs = [ "//third_party/libwebsockets/include", "//third_party/libwebsockets/include/libwebsockets", @@ -208,10 +217,20 @@ ohos_static_library("websockets") { "//third_party/glib", ] + if (target_os == "ios") { + sources += [ "//third_party/libwebsockets/lib/core-net/vhost_ios.c" ] + } else { + sources += [ "//third_party/libwebsockets/lib/core-net/vhost.c" ] + } + defines = [ "OHOS_LIBWEBSOCKETS=1", "OPENSSL_SUPPRESS_DEPRECATED", ] + if (target_os == "ios") { + defines += [ "LWS_DETECTED_PLAT_IOS=1" ] + defines += [ "CROSS_PLATFORM_IOS_LIBWEBSOCKETS=1" ] + } cflags = [ "-fPIC", @@ -228,8 +247,8 @@ ohos_static_library("websockets") { deps = [ "//third_party/openssl:libcrypto_shared", "//third_party/openssl:libssl_shared", + "//third_party/zlib:libz", ] - external_deps = [ "zlib:libz" ] } config("websocket_config") { @@ -286,7 +305,7 @@ config("websockets_public_config") { if (platform == "mingw_x86_64") { include_dirs += [ "//third_party/libwebsockets/lib/plat/windows" ] } else if (platform == "mac_arm64" || platform == "mac_x64" || - platform == "linux_x64") { + platform == "linux_x64" || platform == "linux_arm64") { include_dirs += [ "//third_party/libwebsockets/lib/plat/unix" ] } cflags = [ "-Wno-error=#warnings" ] @@ -359,7 +378,7 @@ ohos_static_library("websockets_static") { "//third_party/libwebsockets/lib/plat/windows/windows-sockets.c", ] } else if (platform == "mac_arm64" || platform == "mac_x64" || - platform == "linux_x64") { + platform == "linux_x64" || platform == "linux_arm64") { defines = [ "LWS_HAVE_SYS_RESOURCE_H" ] sources += [ "//third_party/libwebsockets/lib/plat/unix/unix-caps.c",