Skip to content

Commit a1c1fc3

Browse files
authored
chore(opentelemetry lib): improve build.rs (#23551)
1 parent 92b1936 commit a1c1fc3

File tree

4 files changed

+24
-15
lines changed

4 files changed

+24
-15
lines changed

.github/workflows/semantic.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,4 @@ jobs:
254254
website deps
255255
256256
config provider
257+
opentelemetry lib

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.

lib/opentelemetry-proto/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ publish = false
88
[build-dependencies]
99
prost-build.workspace = true
1010
tonic-build.workspace = true
11+
glob.workspace = true
1112

1213
[dependencies]
1314
bytes = { version = "1.10.1", default-features = false, features = ["serde"] }

lib/opentelemetry-proto/build.rs

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
1-
use std::io::Error;
1+
use glob::glob;
2+
use std::{env, io::Result, path::PathBuf};
3+
4+
fn main() -> Result<()> {
5+
let proto_root = PathBuf::from("src/proto/opentelemetry-proto");
6+
let include_path = proto_root.clone();
7+
8+
let proto_paths: Vec<_> = glob(&format!("{}/**/*.proto", proto_root.display()))
9+
.expect("Failed to read glob pattern")
10+
.filter_map(|result| result.ok())
11+
.collect();
12+
13+
// Set up re-run triggers
14+
for proto in &proto_paths {
15+
println!("cargo:rerun-if-changed={}", proto.display());
16+
}
17+
18+
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
19+
let descriptor_path = out_dir.join("opentelemetry-proto.desc");
220

3-
fn main() -> Result<(), Error> {
421
tonic_build::configure()
522
.build_client(true)
623
.build_server(true)
7-
.compile(
8-
&[
9-
"src/proto/opentelemetry-proto/opentelemetry/proto/common/v1/common.proto",
10-
"src/proto/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto",
11-
"src/proto/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.proto",
12-
"src/proto/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.proto",
13-
"src/proto/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto",
14-
"src/proto/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.proto",
15-
"src/proto/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.proto",
16-
"src/proto/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.proto",
17-
],
18-
&["src/proto/opentelemetry-proto"],
19-
)?;
24+
.file_descriptor_set_path(&descriptor_path)
25+
.compile(&proto_paths, &[include_path])?;
2026

2127
Ok(())
2228
}

0 commit comments

Comments
 (0)