Skip to content

Commit c60d7be

Browse files
committed
Support x11 dependencies
1 parent 6c68177 commit c60d7be

File tree

4 files changed

+26
-13
lines changed

4 files changed

+26
-13
lines changed

examples/Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webrtc-sys/build.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ fn main() {
167167
add_gio_headers(&mut builder);
168168
}
169169

170-
for lib_name in ["libdrm", "gbm"] {
170+
for lib_name in
171+
["libdrm", "gbm", "x11", "xfixes", "xdamage", "xrandr", "xcomposite", "xext"]
172+
{
171173
pkg_config::probe_library(lib_name).unwrap();
172174
}
173175

webrtc-sys/build/src/lib.rs

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
use std::path::PathBuf;
1616
use std::{
17+
collections::HashSet,
1718
env,
1819
fs::{self, File},
1920
io::{self, BufRead, Write},
@@ -117,20 +118,28 @@ pub fn webrtc_dir() -> path::PathBuf {
117118
pub fn webrtc_defines() -> Vec<(String, Option<String>)> {
118119
// read preprocessor definitions from webrtc.ninja
119120
let defines_re = Regex::new(r"-D(\w+)(?:=([^\s]+))?").unwrap();
120-
let webrtc_gni = fs::File::open(webrtc_dir().join("webrtc.ninja")).unwrap();
121+
let files = [webrtc_dir().join("webrtc.ninja"), webrtc_dir().join("desktop_capture.ninja")];
121122

122-
let mut defines_line = String::default();
123-
io::BufReader::new(webrtc_gni).read_line(&mut defines_line).unwrap();
123+
let mut seen = HashSet::new();
124+
let mut vec = Vec::new();
124125

125-
let mut vec = Vec::default();
126-
for cap in defines_re.captures_iter(&defines_line) {
127-
let define_name = &cap[1];
128-
let define_value = cap.get(2).map(|m| m.as_str());
129-
if IGNORE_DEFINES.contains(&define_name) {
130-
continue;
131-
}
126+
for path in files {
127+
let gni = fs::File::open(path).unwrap();
132128

133-
vec.push((define_name.to_owned(), define_value.map(str::to_string)));
129+
let mut defines_line = String::default();
130+
io::BufReader::new(gni).read_line(&mut defines_line).unwrap();
131+
for cap in defines_re.captures_iter(&defines_line) {
132+
let define_name = &cap[1];
133+
let define_value = cap.get(2).map(|m| m.as_str());
134+
if IGNORE_DEFINES.contains(&define_name) {
135+
continue;
136+
}
137+
let value = define_value.map(str::to_string);
138+
let name = define_name.to_owned();
139+
if seen.insert((name.clone(), value.clone())) {
140+
vec.push((name, value));
141+
}
142+
}
134143
}
135144

136145
vec

webrtc-sys/libwebrtc/build_linux.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ args="is_debug=$debug \
120120
enable_iterator_debugging=false \
121121
use_rtti=true \
122122
is_clang=false \
123-
rtc_use_x11=false"
123+
rtc_use_x11=true"
124124

125125
# generate ninja files
126126
gn gen "$OUTPUT_DIR" --root="src" --args="${args}"
@@ -137,6 +137,7 @@ python3 "./src/tools_webrtc/libs/generate_licenses.py" \
137137
--target :default "$OUTPUT_DIR" "$OUTPUT_DIR"
138138

139139
cp "$OUTPUT_DIR/obj/webrtc.ninja" "$ARTIFACTS_DIR"
140+
cp "$OUTPUT_DIR/obj/modules/desktop_capture/desktop_capture.ninja" "$ARTIFACTS_DIR"
140141
cp "$OUTPUT_DIR/args.gn" "$ARTIFACTS_DIR"
141142
cp "$OUTPUT_DIR/LICENSE.md" "$ARTIFACTS_DIR"
142143

0 commit comments

Comments
 (0)