build: add options to configure libsrtp for boringssl or other libraries
Depends on
https://webrtc-review.googlesource.com/c/src/+/359928
BUG=webrtc:42234521,webrtc:42224104
Change-Id: I0d6335aa5fb3f090c781bed234ed34d6c98ec299
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/359928
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Cr-Commit-Position: refs/heads/main@{#42857}
diff --git a/BUILD.gn b/BUILD.gn
index 64cd32a..2bf28cc 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -512,6 +512,18 @@
frameworks = [ "Foundation.framework" ]
}
+if (!rtc_build_ssl) {
+ config("external_ssl_library") {
+ if (rtc_ssl_root != "") {
+ include_dirs = [ rtc_ssl_root ]
+ }
+ libs = [
+ "crypto",
+ "ssl",
+ ]
+ }
+}
+
if (!build_with_chromium) {
# Target to build all the WebRTC production code.
rtc_static_library("webrtc") {
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
index 33a5355..88b7ac3 100644
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -12,7 +12,7 @@
# Enables assertions on safety checks in libc++.
enable_safe_libcxx = true
-# Don't set this variable to true when building stadalone WebRTC, it is
+# Don't set this variable to true when building standalone WebRTC, it is
# only needed to support both WebRTC standalone and Chromium builds.
build_with_chromium = false
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 6f2fb90..fd60ce2 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -34,6 +34,13 @@
import("//build/config/android/rules.gni")
}
+if (rtc_build_libsrtp) {
+ import("//third_party/libsrtp/options.gni")
+ assert(rtc_build_ssl == libsrtp_build_boringssl,
+ "Mismatch ssl build settings detected")
+ assert(rtc_ssl_root == libsrtp_ssl_root, "Mismatch in ssl root detected")
+}
+
group("pc") {
deps = [ ":rtc_pc" ]
}
@@ -178,6 +185,10 @@
]
if (rtc_build_libsrtp) {
deps += [ "//third_party/libsrtp" ]
+ configs = []
+ if (!rtc_build_ssl) {
+ configs += [ "..:external_ssl_library" ]
+ }
}
}
@@ -613,6 +624,10 @@
]
if (rtc_build_libsrtp) {
deps += [ "//third_party/libsrtp" ]
+ configs = []
+ if (!rtc_build_ssl) {
+ configs += [ "..:external_ssl_library" ]
+ }
}
}
rtc_source_set("srtp_transport") {
@@ -1991,8 +2006,6 @@
"video_rtp_receiver_unittest.cc",
]
- include_dirs = [ "//third_party/libsrtp/srtp" ]
-
if (is_win) {
libs = [ "strmiids.lib" ]
}
@@ -2100,8 +2113,14 @@
"//third_party/abseil-cpp/absl/types:optional",
]
+ include_dirs = []
+ configs = []
if (rtc_build_libsrtp) {
+ include_dirs += [ "//third_party/libsrtp/srtp" ]
deps += [ "//third_party/libsrtp" ]
+ if (!rtc_build_ssl) {
+ configs += [ "..:external_ssl_library" ]
+ }
}
if (is_android) {
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 4743a46..4e06cdd 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -13,18 +13,6 @@
import("//build/config/android/rules.gni")
}
-if (!rtc_build_ssl) {
- config("external_ssl_library") {
- if (rtc_ssl_root != "") {
- include_dirs = [ rtc_ssl_root ]
- }
- libs = [
- "crypto",
- "ssl",
- ]
- }
-}
-
rtc_source_set("protobuf_utils") {
sources = [ "protobuf_utils.h" ]
if (rtc_enable_protobuf) {
@@ -1504,7 +1492,7 @@
if (rtc_build_ssl) {
deps += [ "//third_party/boringssl" ]
} else {
- configs += [ ":external_ssl_library" ]
+ configs += [ "..:external_ssl_library" ]
}
}
@@ -1526,7 +1514,7 @@
if (rtc_build_ssl) {
deps += [ "//third_party/boringssl" ]
} else {
- configs += [ ":external_ssl_library" ]
+ configs += [ "..:external_ssl_library" ]
}
}
@@ -1591,7 +1579,7 @@
]
deps += [ ":crypto_random" ]
- configs += [ ":external_ssl_library" ]
+ configs += [ "..:external_ssl_library" ]
}
if (build_with_chromium) {
@@ -1653,7 +1641,7 @@
if (rtc_build_ssl) {
deps += [ "//third_party/boringssl" ]
} else {
- configs += [ ":external_ssl_library" ]
+ configs += [ "..:external_ssl_library" ]
}
}
@@ -2211,7 +2199,7 @@
if (rtc_build_ssl) {
deps += [ "//third_party/boringssl" ]
} else {
- configs += [ ":external_ssl_library" ]
+ configs += [ "..:external_ssl_library" ]
}
}
}