Skip to content

Commit d354e96

Browse files
authored
refactor: introduce public/private headers (#144)
1 parent aa037a9 commit d354e96

File tree

120 files changed

+520
-589
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+520
-589
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
/bazel-*
22
/.build/
33
/.coverage/
4+
5+
dist/
6+
out/
47
MODULE.bazel.lock

BUILD.bazel

Lines changed: 112 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -1,125 +1,121 @@
11
cc_library(
22
name = "dd_trace_cpp",
33
srcs = [
4-
"src/datadog/base64.cpp",
5-
"src/datadog/cerr_logger.cpp",
6-
"src/datadog/clock.cpp",
7-
"src/datadog/config_manager.cpp",
8-
"src/datadog/collector_response.cpp",
9-
# "src/datadog/curl.cpp", no libcurl
10-
"src/datadog/datadog_agent_config.cpp",
11-
"src/datadog/datadog_agent.cpp",
12-
# "src/datadog/default_http_client_curl.cpp", no libcurl
13-
"src/datadog/default_http_client_null.cpp",
14-
"src/datadog/environment.cpp",
15-
"src/datadog/error.cpp",
16-
"src/datadog/extraction_util.cpp",
17-
"src/datadog/glob.cpp",
18-
"src/datadog/http_client.cpp",
19-
"src/datadog/id_generator.cpp",
20-
"src/datadog/limiter.cpp",
21-
"src/datadog/logger.cpp",
22-
"src/datadog/metrics.cpp",
23-
"src/datadog/msgpack.cpp",
24-
"src/datadog/null_collector.cpp",
25-
"src/datadog/parse_util.cpp",
26-
"src/datadog/platform_util.cpp",
27-
"src/datadog/propagation_style.cpp",
28-
"src/datadog/random.cpp",
29-
"src/datadog/rate.cpp",
30-
"src/datadog/remote_config/remote_config.cpp",
31-
"src/datadog/runtime_id.cpp",
32-
"src/datadog/span.cpp",
33-
"src/datadog/span_data.cpp",
34-
"src/datadog/span_defaults.cpp",
35-
"src/datadog/span_matcher.cpp",
36-
"src/datadog/span_sampler_config.cpp",
37-
"src/datadog/span_sampler.cpp",
38-
"src/datadog/string_util.cpp",
39-
"src/datadog/tag_propagation.cpp",
40-
"src/datadog/tags.cpp",
41-
"src/datadog/threaded_event_scheduler.cpp",
42-
"src/datadog/tracer_config.cpp",
43-
"src/datadog/tracer_telemetry.cpp",
44-
"src/datadog/tracer.cpp",
45-
"src/datadog/trace_id.cpp",
46-
"src/datadog/trace_sampler_config.cpp",
47-
"src/datadog/trace_sampler.cpp",
48-
"src/datadog/trace_segment.cpp",
49-
"src/datadog/version.cpp",
50-
"src/datadog/w3c_propagation.cpp",
4+
"src/datadog/base64.cpp",
5+
"src/datadog/cerr_logger.cpp",
6+
"src/datadog/clock.cpp",
7+
"src/datadog/config_manager.cpp",
8+
"src/datadog/collector_response.cpp",
9+
"src/datadog/datadog_agent_config.cpp",
10+
"src/datadog/datadog_agent.cpp",
11+
"src/datadog/default_http_client_null.cpp",
12+
"src/datadog/environment.cpp",
13+
"src/datadog/error.cpp",
14+
"src/datadog/extraction_util.cpp",
15+
"src/datadog/glob.cpp",
16+
"src/datadog/http_client.cpp",
17+
"src/datadog/id_generator.cpp",
18+
"src/datadog/limiter.cpp",
19+
"src/datadog/logger.cpp",
20+
"src/datadog/metrics.cpp",
21+
"src/datadog/msgpack.cpp",
22+
"src/datadog/parse_util.cpp",
23+
"src/datadog/platform_util.cpp",
24+
"src/datadog/propagation_style.cpp",
25+
"src/datadog/random.cpp",
26+
"src/datadog/rate.cpp",
27+
"src/datadog/remote_config/remote_config.cpp",
28+
"src/datadog/runtime_id.cpp",
29+
"src/datadog/span.cpp",
30+
"src/datadog/span_data.cpp",
31+
"src/datadog/span_defaults.cpp",
32+
"src/datadog/span_matcher.cpp",
33+
"src/datadog/span_sampler_config.cpp",
34+
"src/datadog/span_sampler.cpp",
35+
"src/datadog/string_util.cpp",
36+
"src/datadog/tag_propagation.cpp",
37+
"src/datadog/tags.cpp",
38+
"src/datadog/threaded_event_scheduler.cpp",
39+
"src/datadog/tracer_config.cpp",
40+
"src/datadog/tracer_telemetry.cpp",
41+
"src/datadog/tracer.cpp",
42+
"src/datadog/trace_id.cpp",
43+
"src/datadog/trace_sampler_config.cpp",
44+
"src/datadog/trace_sampler.cpp",
45+
"src/datadog/trace_segment.cpp",
46+
"src/datadog/version.cpp",
47+
"src/datadog/w3c_propagation.cpp",
48+
"src/datadog/base64.h",
49+
"src/datadog/cerr_logger.h",
50+
"src/datadog/config_manager.h",
51+
"src/datadog/collector_response.h",
52+
"src/datadog/datadog_agent.h",
53+
"src/datadog/default_http_client.h",
54+
"src/datadog/extracted_data.h",
55+
"src/datadog/extraction_util.h",
56+
"src/datadog/glob.h",
57+
"src/datadog/hex.h",
58+
"src/datadog/json.hpp",
59+
"src/datadog/limiter.h",
60+
"src/datadog/metrics.h",
61+
"src/datadog/msgpack.h",
62+
"src/datadog/parse_util.h",
63+
"src/datadog/platform_util.h",
64+
"src/datadog/random.h",
65+
"src/datadog/remote_config/remote_config.h",
66+
"src/datadog/sampling_util.h",
67+
"src/datadog/span_data.h",
68+
"src/datadog/span_sampler.h",
69+
"src/datadog/string_util.h",
70+
"src/datadog/tag_propagation.h",
71+
"src/datadog/tags.h",
72+
"src/datadog/threaded_event_scheduler.h",
73+
"src/datadog/tracer_telemetry.h",
74+
"src/datadog/trace_sampler.h",
75+
"src/datadog/w3c_propagation.h",
5176
],
5277
hdrs = [
53-
"src/datadog/base64.h",
54-
"src/datadog/cerr_logger.h",
55-
"src/datadog/config.h",
56-
"src/datadog/clock.h",
57-
"src/datadog/config_manager.h",
58-
"src/datadog/collector.h",
59-
"src/datadog/collector_response.h",
60-
# "src/datadog/curl.h", no libcurl
61-
"src/datadog/datadog_agent_config.h",
62-
"src/datadog/datadog_agent.h",
63-
"src/datadog/default_http_client.h",
64-
"src/datadog/dict_reader.h",
65-
"src/datadog/dict_writer.h",
66-
"src/datadog/environment.h",
67-
"src/datadog/error.h",
68-
"src/datadog/event_scheduler.h",
69-
"src/datadog/expected.h",
70-
"src/datadog/extracted_data.h",
71-
"src/datadog/extraction_util.h",
72-
"src/datadog/glob.h",
73-
"src/datadog/hex.h",
74-
"src/datadog/http_client.h",
75-
"src/datadog/id_generator.h",
76-
"src/datadog/injection_options.h",
77-
"src/datadog/json.hpp",
78-
"src/datadog/json_fwd.hpp",
79-
"src/datadog/limiter.h",
80-
"src/datadog/logger.h",
81-
"src/datadog/metrics.h",
82-
"src/datadog/msgpack.h",
83-
"src/datadog/null_collector.h",
84-
"src/datadog/optional.h",
85-
"src/datadog/parse_util.h",
86-
"src/datadog/platform_util.h",
87-
"src/datadog/propagation_style.h",
88-
"src/datadog/random.h",
89-
"src/datadog/rate.h",
90-
"src/datadog/remote_config/capability.h",
91-
"src/datadog/remote_config/listener.h",
92-
"src/datadog/remote_config/product.h",
93-
"src/datadog/remote_config/remote_config.h",
94-
"src/datadog/runtime_id.h",
95-
"src/datadog/sampling_decision.h",
96-
"src/datadog/sampling_mechanism.h",
97-
"src/datadog/sampling_priority.h",
98-
"src/datadog/sampling_util.h",
99-
"src/datadog/span_config.h",
100-
"src/datadog/span_data.h",
101-
"src/datadog/span_defaults.h",
102-
"src/datadog/span.h",
103-
"src/datadog/span_matcher.h",
104-
"src/datadog/span_sampler_config.h",
105-
"src/datadog/span_sampler.h",
106-
"src/datadog/string_util.h",
107-
"src/datadog/string_view.h",
108-
"src/datadog/tag_propagation.h",
109-
"src/datadog/tags.h",
110-
"src/datadog/threaded_event_scheduler.h",
111-
"src/datadog/tracer_config.h",
112-
"src/datadog/tracer_signature.h",
113-
"src/datadog/tracer_telemetry.h",
114-
"src/datadog/tracer.h",
115-
"src/datadog/trace_id.h",
116-
"src/datadog/trace_sampler_config.h",
117-
"src/datadog/trace_sampler.h",
118-
"src/datadog/trace_segment.h",
119-
"src/datadog/version.h",
120-
"src/datadog/w3c_propagation.h",
78+
"include/datadog/clock.h",
79+
"include/datadog/collector.h",
80+
"include/datadog/config.h",
81+
"include/datadog/datadog_agent_config.h",
82+
"include/datadog/dict_reader.h",
83+
"include/datadog/dict_writer.h",
84+
"include/datadog/error.h",
85+
"include/datadog/environment.h",
86+
"include/datadog/event_scheduler.h",
87+
"include/datadog/expected.h",
88+
"include/datadog/http_client.h",
89+
"include/datadog/id_generator.h",
90+
"include/datadog/injection_options.h",
91+
"include/datadog/json_fwd.hpp",
92+
"include/datadog/logger.h",
93+
"include/datadog/null_collector.h",
94+
"include/datadog/optional.h",
95+
"include/datadog/propagation_style.h",
96+
"include/datadog/rate.h",
97+
"include/datadog/runtime_id.h",
98+
"include/datadog/sampling_decision.h",
99+
"include/datadog/sampling_mechanism.h",
100+
"include/datadog/sampling_priority.h",
101+
"include/datadog/span.h",
102+
"include/datadog/span_config.h",
103+
"include/datadog/span_defaults.h",
104+
"include/datadog/span_matcher.h",
105+
"include/datadog/span_sampler_config.h",
106+
"include/datadog/string_view.h",
107+
"include/datadog/tracer.h",
108+
"include/datadog/tracer_config.h",
109+
"include/datadog/tracer_signature.h",
110+
"include/datadog/trace_id.h",
111+
"include/datadog/trace_sampler_config.h",
112+
"include/datadog/trace_segment.h",
113+
"include/datadog/version.h",
114+
"include/datadog/remote_config/capability.h",
115+
"include/datadog/remote_config/listener.h",
116+
"include/datadog/remote_config/product.h",
121117
],
122-
strip_include_prefix = "src/",
118+
strip_include_prefix = "include/",
123119
copts = ["-Isrc/datadog"],
124120
visibility = ["//visibility:public"],
125121
deps = [

CMakeLists.txt

Lines changed: 13 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ endif ()
3434
# Linking this library requires threads.
3535
find_package(Threads REQUIRED)
3636
include(cmake/deps/curl.cmake)
37+
include(cmake/deps/json.cmake)
3738
include(cmake/utils.cmake)
3839

3940
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/src/datadog/version.cpp DD_TRACE_VERSION_CPP_CONTENTS REGEX "#define DD_TRACE_VERSION( |_NUM )")
@@ -77,7 +78,14 @@ endif ()
7778
add_library(dd_trace_cpp-objects OBJECT)
7879
add_library(dd_trace::obj ALIAS dd_trace_cpp-objects)
7980

81+
file(GLOB_RECURSE public_header_files ${CMAKE_SOURCE_DIR}/include/*.h)
82+
8083
target_sources(dd_trace_cpp-objects
84+
PUBLIC
85+
FILE_SET public_headers
86+
TYPE HEADERS
87+
BASE_DIRS include
88+
FILES ${public_header_files}
8189
PRIVATE
8290
src/datadog/base64.cpp
8391
src/datadog/cerr_logger.cpp
@@ -86,7 +94,6 @@ target_sources(dd_trace_cpp-objects
8694
src/datadog/collector_response.cpp
8795
src/datadog/datadog_agent_config.cpp
8896
src/datadog/datadog_agent.cpp
89-
# src/datadog/default_http_client_null.cpp use libcurl
9097
src/datadog/environment.cpp
9198
src/datadog/error.cpp
9299
src/datadog/extraction_util.cpp
@@ -97,12 +104,12 @@ target_sources(dd_trace_cpp-objects
97104
src/datadog/logger.cpp
98105
src/datadog/metrics.cpp
99106
src/datadog/msgpack.cpp
100-
src/datadog/null_collector.cpp
101107
src/datadog/parse_util.cpp
102108
src/datadog/platform_util.cpp
103109
src/datadog/propagation_style.cpp
104110
src/datadog/random.cpp
105111
src/datadog/rate.cpp
112+
src/datadog/remote_config/product.cpp
106113
src/datadog/remote_config/remote_config.cpp
107114
src/datadog/runtime_id.cpp
108115
src/datadog/span.cpp
@@ -126,88 +133,14 @@ target_sources(dd_trace_cpp-objects
126133
src/datadog/w3c_propagation.cpp
127134
)
128135

129-
# This library's public headers are just its source headers.
130-
target_sources(dd_trace_cpp-objects PUBLIC
131-
FILE_SET public_headers
132-
TYPE HEADERS
133-
BASE_DIRS src/
134-
FILES
135-
src/datadog/base64.h
136-
src/datadog/config.h
137-
src/datadog/cerr_logger.h
138-
src/datadog/clock.h
139-
src/datadog/config_manager.h
140-
src/datadog/collector.h
141-
src/datadog/collector_response.h
142-
# src/datadog/curl.h except for curl.h
143-
src/datadog/datadog_agent_config.h
144-
src/datadog/datadog_agent.h
145-
src/datadog/default_http_client.h
146-
src/datadog/dict_reader.h
147-
src/datadog/dict_writer.h
148-
src/datadog/environment.h
149-
src/datadog/error.h
150-
src/datadog/event_scheduler.h
151-
src/datadog/expected.h
152-
src/datadog/extracted_data.h
153-
src/datadog/extraction_util.h
154-
src/datadog/glob.h
155-
src/datadog/hex.h
156-
src/datadog/http_client.h
157-
src/datadog/id_generator.h
158-
src/datadog/injection_options.h
159-
src/datadog/json_fwd.hpp
160-
src/datadog/json.hpp
161-
src/datadog/limiter.h
162-
src/datadog/logger.h
163-
src/datadog/metrics.h
164-
src/datadog/msgpack.h
165-
src/datadog/null_collector.h
166-
src/datadog/optional.h
167-
src/datadog/parse_util.h
168-
src/datadog/platform_util.h
169-
src/datadog/propagation_style.h
170-
src/datadog/random.h
171-
src/datadog/rate.h
172-
src/datadog/remote_config/remote_config.h
173-
src/datadog/remote_config/capability.h
174-
src/datadog/remote_config/listener.h
175-
src/datadog/runtime_id.h
176-
src/datadog/sampling_decision.h
177-
src/datadog/sampling_mechanism.h
178-
src/datadog/sampling_priority.h
179-
src/datadog/sampling_util.h
180-
src/datadog/span_config.h
181-
src/datadog/span_data.h
182-
src/datadog/span_defaults.h
183-
src/datadog/span.h
184-
src/datadog/span_matcher.h
185-
src/datadog/span_sampler_config.h
186-
src/datadog/span_sampler.h
187-
src/datadog/string_util.h
188-
src/datadog/string_view.h
189-
src/datadog/tag_propagation.h
190-
src/datadog/tags.h
191-
src/datadog/threaded_event_scheduler.h
192-
src/datadog/tracer_config.h
193-
src/datadog/tracer_signature.h
194-
src/datadog/tracer_telemetry.h
195-
src/datadog/tracer.h
196-
src/datadog/trace_id.h
197-
src/datadog/trace_sampler_config.h
198-
src/datadog/trace_sampler.h
199-
src/datadog/trace_segment.h
200-
src/datadog/version.h
201-
src/datadog/w3c_propagation.h
202-
)
203-
204136
# Headers location are different depending of whether we are building
205137
# or installing the library.
206138
target_include_directories(dd_trace_cpp-objects
207139
PUBLIC
208-
$<INSTALL_INTERFACE:src/datadog>
209-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
210-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/datadog>
140+
$<INSTALL_INTERFACE:include>
141+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
142+
PRIVATE
143+
${CMAKE_CURRENT_SOURCE_DIR}/src/datadog
211144
)
212145

213146
target_link_libraries(dd_trace_cpp-objects
@@ -252,7 +185,6 @@ if (BUILD_SHARED_LIBS)
252185
FILE_SET public_headers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
253186
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
254187
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
255-
# For Windows
256188
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
257189
)
258190
endif ()
@@ -290,7 +222,6 @@ if (BUILD_STATIC_LIBS)
290222
FILE_SET public_headers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
291223
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
292224
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
293-
# For Windows
294225
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
295226
)
296227
endif ()

0 commit comments

Comments
 (0)