Make rawrtc build
Change-Id: I077e43c6aaee27307dadb97a7352c8412b735519
diff --git a/third_party/rawrtc/rawrtc-common/BUILD b/third_party/rawrtc/rawrtc-common/BUILD
new file mode 100644
index 0000000..379166e
--- /dev/null
+++ b/third_party/rawrtc/rawrtc-common/BUILD
@@ -0,0 +1,11 @@
+cc_library(
+ name = "rawrtcc",
+ srcs = glob(["src/**/*.c"]),
+ hdrs = glob(["include/**/*.h"]),
+ defines = [
+ "RAWRTC_DEBUG_LEVEL=0",
+ ],
+ includes = ["include/"],
+ visibility = ["//visibility:public"],
+ deps = ["@com_github_rawrtc_rew//:rew"],
+)
diff --git a/third_party/rawrtc/rawrtc-common/WORKSPACE b/third_party/rawrtc/rawrtc-common/WORKSPACE
new file mode 100644
index 0000000..f26f019
--- /dev/null
+++ b/third_party/rawrtc/rawrtc-common/WORKSPACE
@@ -0,0 +1 @@
+workspace(name = "com_github_rawrtc_rawrtc_common")
diff --git a/third_party/rawrtc/rawrtc-common/include/rawrtcc/config.h b/third_party/rawrtc/rawrtc-common/include/rawrtcc/config.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/rawrtc/rawrtc-common/include/rawrtcc/config.h
diff --git a/third_party/rawrtc/rawrtc-data-channel/BUILD b/third_party/rawrtc/rawrtc-data-channel/BUILD
new file mode 100644
index 0000000..096024a
--- /dev/null
+++ b/third_party/rawrtc/rawrtc-data-channel/BUILD
@@ -0,0 +1,39 @@
+load("@//tools/build_rules:select.bzl", "compiler_select")
+
+cc_library(
+ name = "rawrtcdc",
+ srcs = glob(
+ [
+ "src/**/*.c",
+ "src/**/*.h",
+ ],
+ exclude = [
+ "src/sctp_redirect_transport",
+ "src/crc32c/sse42*",
+ ],
+ ),
+ hdrs = glob(["include/**/*.h"]),
+ copts = compiler_select({
+ "clang": [
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ ],
+ "gcc": [
+ "-Wno-discarded-qualifiers",
+ "-Wno-maybe-uninitialized",
+ ],
+ }) + [
+ "-Wno-cast-qual",
+ "-Wno-cast-align",
+ "-Wno-missing-braces",
+ ],
+ defines = [
+ "RAWRTCDC_HAVE_SCTP_REDIRECT_TRANSPORT=0",
+ "RAWRTCDC_ENABLE_SSE42_CRC32C=0",
+ ],
+ includes = ["include/"],
+ visibility = ["//visibility:public"],
+ deps = [
+ "@com_github_rawrtc_rawrtc_common//:rawrtcc",
+ "@com_github_rawrtc_usrsctp//:usrsctp_crc32",
+ ],
+)
diff --git a/third_party/rawrtc/rawrtc-data-channel/WORKSPACE b/third_party/rawrtc/rawrtc-data-channel/WORKSPACE
new file mode 100644
index 0000000..957c8b1
--- /dev/null
+++ b/third_party/rawrtc/rawrtc-data-channel/WORKSPACE
@@ -0,0 +1 @@
+workspace(name = "com_github_rawrtc_rawrtc_data_channel")
diff --git a/third_party/rawrtc/rawrtc-data-channel/include/rawrtcdc/config.h b/third_party/rawrtc/rawrtc-data-channel/include/rawrtcdc/config.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/rawrtc/rawrtc-data-channel/include/rawrtcdc/config.h
diff --git a/third_party/rawrtc/rawrtc/BUILD b/third_party/rawrtc/rawrtc/BUILD
new file mode 100644
index 0000000..df14384
--- /dev/null
+++ b/third_party/rawrtc/rawrtc/BUILD
@@ -0,0 +1,34 @@
+load("@//tools/build_rules:select.bzl", "compiler_select")
+
+cc_library(
+ name = "rawrtc",
+ srcs = glob([
+ "src/**/*.c",
+ "src/**/*.h",
+ ]),
+ hdrs = glob(["include/**/*.h"]),
+ copts = compiler_select({
+ "clang": [
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ ],
+ "gcc": [
+ "-Wno-discarded-qualifiers",
+ "-Wno-implicit-fallthrough",
+ ],
+ }) + [
+ "-Wno-implicit-function-declaration",
+ "-Wno-int-conversion",
+ "-Wno-cast-qual",
+ "-Wno-missing-braces",
+ "-Iexternal/com_github_rawrtc_rawrtc/",
+ ],
+ includes = ["include/"],
+ local_defines = [
+ "RAWRTC_VERSION=\\\"0.5.1\\\"",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [
+ "@com_github_rawrtc_rawrtc_common//:rawrtcc",
+ "@com_github_rawrtc_rawrtc_data_channel//:rawrtcdc",
+ ],
+)
diff --git a/third_party/rawrtc/rawrtc/WORKSPACE b/third_party/rawrtc/rawrtc/WORKSPACE
new file mode 100644
index 0000000..2c6b696
--- /dev/null
+++ b/third_party/rawrtc/rawrtc/WORKSPACE
@@ -0,0 +1 @@
+workspace(name = "com_github_rawrtc_rawrtc")
diff --git a/third_party/rawrtc/rawrtc/include/rawrtc/config.h b/third_party/rawrtc/rawrtc/include/rawrtc/config.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/rawrtc/rawrtc/include/rawrtc/config.h
diff --git a/third_party/rawrtc/re/BUILD b/third_party/rawrtc/re/BUILD
new file mode 100644
index 0000000..af720c5
--- /dev/null
+++ b/third_party/rawrtc/re/BUILD
@@ -0,0 +1,48 @@
+load("@//tools/build_rules:select.bzl", "compiler_select")
+
+cc_library(
+ name = "re",
+ srcs = glob(
+ [
+ "src/**/*.c",
+ "src/**/*.h",
+ ],
+ exclude = [
+ "src/aes/apple/**",
+ "src/aes/stub.c",
+ "src/hmac/apple/**",
+ "src/hmac/hmac.c",
+ "src/mqueue/win32/**",
+ "src/tls/openssl/**",
+ "src/dns/win32/**",
+ "src/mod/win32/**",
+ "src/lock/lock.c",
+ "src/lock/win32/**",
+ "src/dns/darwin/**",
+ "src/net/win32/**",
+ "src/net/bsd/**",
+ ],
+ ),
+ hdrs = glob(["include/*.h"]),
+ copts = compiler_select({
+ "clang": [
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ ],
+ "gcc": [
+ "-Wno-discarded-qualifiers",
+ "-Wno-implicit-fallthrough",
+ ],
+ }) + [
+ "-DVER_MAJOR=0",
+ "-DVER_MINOR=6",
+ "-DVER_PATCH=0",
+ "-DHAVE_ROUTE_LIST",
+ "-Wno-cast-qual",
+ "-Wno-cast-align",
+ "-Wno-implicit-function-declaration",
+ ],
+ defines = ["HAVE_INTTYPES_H"],
+ includes = ["include/"],
+ visibility = ["//visibility:public"],
+ deps = ["@boringssl//:ssl"],
+)
diff --git a/third_party/rawrtc/re/WORKSPACE b/third_party/rawrtc/re/WORKSPACE
new file mode 100644
index 0000000..4bf77f1
--- /dev/null
+++ b/third_party/rawrtc/re/WORKSPACE
@@ -0,0 +1 @@
+workspace(name = "com_github_rawrtc_re")
diff --git a/third_party/rawrtc/rew/BUILD b/third_party/rawrtc/rew/BUILD
new file mode 100644
index 0000000..d5295e7
--- /dev/null
+++ b/third_party/rawrtc/rew/BUILD
@@ -0,0 +1,26 @@
+load("@//tools/build_rules:select.bzl", "compiler_select")
+
+cc_library(
+ name = "rew",
+ srcs = glob(
+ [
+ "src/**/*.c",
+ "src/**/*.h",
+ ],
+ ),
+ hdrs = glob(["include/*.h"]),
+ copts = compiler_select({
+ "clang": [
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ ],
+ "gcc": [
+ "-Wno-discarded-qualifiers",
+ ],
+ }) + [
+ "-Wno-cast-qual",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ ],
+ includes = ["include/"],
+ visibility = ["//visibility:public"],
+ deps = ["@com_github_rawrtc_re//:re"],
+)
diff --git a/third_party/rawrtc/rew/WORKSPACE b/third_party/rawrtc/rew/WORKSPACE
new file mode 100644
index 0000000..a23ec65
--- /dev/null
+++ b/third_party/rawrtc/rew/WORKSPACE
@@ -0,0 +1 @@
+workspace(name = "com_github_rawrtc_rew")
diff --git a/third_party/rawrtc/usrsctp/BUILD b/third_party/rawrtc/usrsctp/BUILD
new file mode 100644
index 0000000..7704bb9
--- /dev/null
+++ b/third_party/rawrtc/usrsctp/BUILD
@@ -0,0 +1,21 @@
+# usrsctp is only actually being used for the CRC function, and getting
+# the entire library building was being obnoxious.
+cc_library(
+ name = "usrsctp_crc32",
+ srcs = ["usrsctplib/netinet/sctp_crc32.c"],
+ hdrs = glob(["usrsctplib/**/*.h"]),
+ copts = [
+ "-Wno-cast-qual",
+ "-Wno-cast-align",
+ "-Wno-unused-parameter",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ ],
+ defines = [
+ "__Userspace_os_Linux",
+ "__Userspace__",
+ "SCTP_SIMPLE_ALLOCATOR",
+ ],
+ includes = ["usrsctplib/"],
+ target_compatible_with = ["@platforms//os:linux"],
+ visibility = ["//visibility:public"],
+)
diff --git a/third_party/rawrtc/usrsctp/WORKSPACE b/third_party/rawrtc/usrsctp/WORKSPACE
new file mode 100644
index 0000000..e382c02
--- /dev/null
+++ b/third_party/rawrtc/usrsctp/WORKSPACE
@@ -0,0 +1 @@
+workspace(name = "com_github_rawrtc_usrsctp")