diff third_party/libuv/BUILD @ 160:948de3f54cea

[ThirdParty] Added libuv
author June Park <parkjune1995@gmail.com>
date Wed, 14 Jan 2026 19:39:52 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/third_party/libuv/BUILD	Wed Jan 14 19:39:52 2026 -0800
@@ -0,0 +1,144 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+# Common source files for all platforms
+COMMON_SRCS = [
+    "src/fs-poll.c",
+    "src/idna.c",
+    "src/inet.c",
+    "src/random.c",
+    "src/strscpy.c",
+    "src/strtok.c",
+    "src/thread-common.c",
+    "src/threadpool.c",
+    "src/timer.c",
+    "src/uv-common.c",
+    "src/uv-data-getter-setters.c",
+    "src/version.c",
+]
+
+# Unix common source files
+UNIX_SRCS = [
+    "src/unix/async.c",
+    "src/unix/core.c",
+    "src/unix/dl.c",
+    "src/unix/fs.c",
+    "src/unix/getaddrinfo.c",
+    "src/unix/getnameinfo.c",
+    "src/unix/loop-watcher.c",
+    "src/unix/loop.c",
+    "src/unix/pipe.c",
+    "src/unix/poll.c",
+    "src/unix/process.c",
+    "src/unix/random-devurandom.c",
+    "src/unix/signal.c",
+    "src/unix/stream.c",
+    "src/unix/tcp.c",
+    "src/unix/thread.c",
+    "src/unix/tty.c",
+    "src/unix/udp.c",
+]
+
+# macOS/Darwin specific sources
+DARWIN_SRCS = [
+    "src/unix/bsd-ifaddrs.c",
+    "src/unix/darwin.c",
+    "src/unix/darwin-proctitle.c",
+    "src/unix/fsevents.c",
+    "src/unix/kqueue.c",
+    "src/unix/proctitle.c",
+    "src/unix/random-getentropy.c",
+]
+
+# Linux specific sources
+LINUX_SRCS = [
+    "src/unix/linux.c",
+    "src/unix/procfs-exepath.c",
+    "src/unix/proctitle.c",
+    "src/unix/random-getrandom.c",
+    "src/unix/random-sysctl-linux.c",
+]
+
+# Windows specific sources
+WIN_SRCS = [
+    "src/win/async.c",
+    "src/win/core.c",
+    "src/win/detect-wakeup.c",
+    "src/win/dl.c",
+    "src/win/error.c",
+    "src/win/fs.c",
+    "src/win/fs-event.c",
+    "src/win/getaddrinfo.c",
+    "src/win/getnameinfo.c",
+    "src/win/handle.c",
+    "src/win/loop-watcher.c",
+    "src/win/pipe.c",
+    "src/win/poll.c",
+    "src/win/process.c",
+    "src/win/process-stdio.c",
+    "src/win/signal.c",
+    "src/win/snprintf.c",
+    "src/win/stream.c",
+    "src/win/tcp.c",
+    "src/win/thread.c",
+    "src/win/tty.c",
+    "src/win/udp.c",
+    "src/win/util.c",
+    "src/win/winapi.c",
+    "src/win/winsock.c",
+]
+
+COMMON_HDRS = glob(["include/**/*.h"]) + glob(["src/*.h"]) + glob(["src/unix/*.h"]) + glob(["src/win/*.h"])
+
+cc_library(
+    name = "libuv",
+    srcs = COMMON_SRCS + select({
+        "@platforms//os:macos": UNIX_SRCS + DARWIN_SRCS,
+        "@platforms//os:linux": UNIX_SRCS + LINUX_SRCS,
+        "@platforms//os:windows": WIN_SRCS,
+    }),
+    hdrs = COMMON_HDRS,
+    includes = ["include", "src"],
+    local_defines = select({
+        "@platforms//os:macos": [
+            "_DARWIN_UNLIMITED_SELECT=1",
+            "_DARWIN_USE_64_BIT_INODE=1",
+            "_FILE_OFFSET_BITS=64",
+            "_LARGEFILE_SOURCE",
+        ],
+        "@platforms//os:linux": [
+            "_GNU_SOURCE",
+            "_POSIX_C_SOURCE=200112",
+            "_FILE_OFFSET_BITS=64",
+            "_LARGEFILE_SOURCE",
+        ],
+        "@platforms//os:windows": [
+            "WIN32_LEAN_AND_MEAN",
+            "_WIN32_WINNT=0x0A00",
+            "_CRT_DECLARE_NONSTDC_NAMES=0",
+        ],
+    }),
+    linkopts = select({
+        "@platforms//os:macos": ["-lpthread"],
+        "@platforms//os:linux": ["-lpthread", "-ldl", "-lrt", "-lm"],
+        "@platforms//os:windows": [
+            "-lpsapi",
+            "-luser32",
+            "-ladvapi32",
+            "-liphlpapi",
+            "-luserenv",
+            "-lws2_32",
+            "-ldbghelp",
+            "-lole32",
+            "-lshell32",
+        ],
+    }),
+    copts = select({
+        "@platforms//os:windows": [],
+        "//conditions:default": [
+            "-fno-strict-aliasing",
+            "-Wno-unused-parameter",
+        ],
+    }),
+)