Skip to content

Commit d10aeef

Browse files
committed
FIXUP: add FFI examples and fix build
1 parent 938761c commit d10aeef

File tree

13 files changed

+102
-7
lines changed

13 files changed

+102
-7
lines changed

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.

LICENSE-3rdparty.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
root_name: builder, build_common, tools, datadog-alloc, datadog-crashtracker, ddcommon, ddtelemetry, datadog-ddsketch, datadog-crashtracker-ffi, ddcommon-ffi, datadog-ipc, datadog-ipc-macros, tarpc, tarpc-plugins, tinybytes, spawn_worker, cc_utils, datadog-library-config, datadog-library-config-ffi, datadog-live-debugger, datadog-live-debugger-ffi, datadog-profiling, datadog-profiling-protobuf, datadog-profiling-ffi, data-pipeline-ffi, data-pipeline, datadog-trace-protobuf, datadog-trace-utils, datadog-trace-normalization, dogstatsd-client, datadog-log-ffi, datadog-log, ddtelemetry-ffi, symbolizer-ffi, datadog-profiling-replayer, datadog-remote-config, datadog-sidecar, datadog-sidecar-macros, datadog-sidecar-ffi, datadog-trace-obfuscation, datadog-tracer-flare, sidecar_mockgen, test_spawn_from_lib, bin_tests
1+
root_name: builder, build_common, tools, datadog-alloc, datadog-crashtracker, ddcommon, ddtelemetry, datadog-ddsketch, datadog-crashtracker-ffi, ddcommon-ffi, datadog-ipc, datadog-ipc-macros, tarpc, tarpc-plugins, tinybytes, spawn_worker, cc_utils, datadog-library-config, datadog-library-config-ffi, datadog-live-debugger, datadog-live-debugger-ffi, datadog-profiling, datadog-profiling-protobuf, datadog-profiling-ffi, data-pipeline-ffi, data-pipeline, datadog-trace-protobuf, datadog-trace-utils, datadog-trace-normalization, dogstatsd-client, datadog-log-ffi, datadog-log, ddsketch-ffi, ddtelemetry-ffi, symbolizer-ffi, datadog-profiling-replayer, datadog-remote-config, datadog-sidecar, datadog-sidecar-macros, datadog-sidecar-ffi, datadog-trace-obfuscation, datadog-tracer-flare, sidecar_mockgen, test_spawn_from_lib
22
third_party_libraries:
33
- package_name: addr2line
44
package_version: 0.24.2

build-profiling-ffi.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ FEATURES=(
153153
"datadog-profiling-ffi/demangler"
154154
"datadog-library-config-ffi"
155155
"datadog-log-ffi"
156+
"ddsketch-ffi"
156157
)
157158
if [[ "$symbolizer" -eq 1 ]]; then
158159
FEATURES+=("symbolizer")
@@ -237,7 +238,7 @@ echo "Generating $destdir/include/libdatadog headers..."
237238
rm -r $destdir/include/datadog/
238239
mkdir $destdir/include/datadog/
239240

240-
CBINDGEN_HEADERS="common.h profiling.h telemetry.h crashtracker.h data-pipeline.h library-config.h log.h"
241+
CBINDGEN_HEADERS="common.h profiling.h telemetry.h crashtracker.h data-pipeline.h library-config.h log.h ddsketch.h"
241242
# When optional features are added, don't forget to also include the headers here
242243
case $ARG_FEATURES in
243244
esac

builder/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ data-pipeline = []
1515
symbolizer = []
1616
library-config = []
1717
log = []
18+
ddsketch = []
1819

1920
[lib]
2021
bench = false

builder/src/bin/release.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ pub fn main() {
7070
f.push("datadog-library-config-ffi".to_string());
7171
#[cfg(feature = "log")]
7272
f.push("datadog-log-ffi".to_string());
73+
#[cfg(feature = "ddsketch")]
74+
f.push("ddsketch-ffi".to_string());
7375
f
7476
};
7577

builder/src/profiling.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ impl Profiling {
5555
headers.push("library-config.h");
5656
#[cfg(feature = "log")]
5757
headers.push("log.h");
58+
#[cfg(feature = "ddsketch")]
59+
headers.push("ddsketch.h");
5860

5961
let mut origin_path: PathBuf = [&self.source_include, "dummy.h"].iter().collect();
6062
let mut target_path: PathBuf = [&self.target_include, "dummy.h"].iter().collect();

datadog-profiling-ffi/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ crashtracker-receiver = ["crashtracker-ffi", "datadog-crashtracker-ffi/receiver"
2929
demangler = ["crashtracker-ffi", "datadog-crashtracker-ffi/demangler"]
3030
datadog-library-config-ffi = ["dep:datadog-library-config-ffi"]
3131
ddcommon-ffi = ["dep:ddcommon-ffi"]
32+
ddsketch-ffi = ["dep:ddsketch-ffi"]
3233

3334
[build-dependencies]
3435
build_common = { path = "../build-common" }
@@ -43,6 +44,7 @@ ddcommon = { path = "../ddcommon" }
4344
ddcommon-ffi = { path = "../ddcommon-ffi", default-features = false, optional = true }
4445
ddtelemetry-ffi = { path = "../ddtelemetry-ffi", default-features = false, optional = true, features = ["expanded_builder_macros"] }
4546
datadog-log-ffi = { path = "../datadog-log-ffi", default-features = false, optional = true }
47+
ddsketch-ffi = { path = "../ddsketch-ffi", default-features = false, optional = true }
4648
function_name = "0.3.0"
4749
futures = { version = "0.3", default-features = false }
4850
http-body-util = "0.1"

datadog-profiling-ffi/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ pub use ddtelemetry_ffi::*;
2626
#[allow(unused_imports)]
2727
pub use data_pipeline_ffi::*;
2828

29+
// re-export ddsketch ffi
30+
#[cfg(feature = "ddsketch-ffi")]
31+
#[allow(unused_imports)]
32+
pub use ddsketch_ffi::*;
33+
2934
// re-export library-config ffi
3035
#[cfg(feature = "datadog-library-config-ffi")]
3136
pub use datadog_library_config_ffi::*;

ddsketch-ffi/build.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
// Copyright 2023-Present Datadog, Inc. https://www.datadoghq.com/
1+
// Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
22
// SPDX-License-Identifier: Apache-2.0
33

4+
extern crate build_common;
5+
46
use build_common::generate_and_configure_header;
57

68
fn main() {
7-
generate_and_configure_header("datadog_ddsketch.h");
9+
let header_name = "ddsketch.h";
10+
generate_and_configure_header(header_name);
811
}

ddsketch-ffi/cbindgen.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ includes = ["common.h"]
1616

1717
[parse]
1818
parse_deps = true
19-
include = ["ddcommon-ffi"]
19+
include = ["ddcommon-ffi", "datadog-ddsketch"]
2020

2121
[export]
2222
include = ["ddsketch-ffi"]
@@ -32,4 +32,4 @@ must_use = "DDOG_CHECK_RETURN"
3232

3333
[enum]
3434
prefix_with_name = true
35-
rename_variants = "ScreamingSnakeCase"
35+
rename_variants = "ScreamingSnakeCase"

0 commit comments

Comments
 (0)