Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / third_party / pigweed / repo / pw_trace_tokenized / BUILD.gn
1 # Copyright 2020 The Pigweed Authors
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 # use this file except in compliance with the License. You may obtain a copy of
5 # the License at
6 #
7 #     https://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 # License for the specific language governing permissions and limitations under
13 # the License.
14
15 import("//build_overrides/pigweed.gni")
16
17 import("$dir_pw_build/module_config.gni")
18 import("$dir_pw_docgen/docs.gni")
19 import("$dir_pw_unit_test/test.gni")
20
21 declare_args() {
22   # The build target that overrides the default configuration options for this
23   # module. This should point to a source set that provides defines through a
24   # public config (which may -include a file or add defines directly).
25   pw_trace_CONFIG = pw_build_DEFAULT_MODULE_CONFIG
26
27   # Tokenizer trace time, gets included if provided
28   pw_trace_tokenizer_time = ""
29
30   # Trace buffer size in bytes. Set to 0 to disable.
31   pw_trace_tokenized_BUFFER_SIZE = 256
32 }
33
34 config("public_include_path") {
35   include_dirs = [ "public" ]
36   visibility = [ ":*" ]
37 }
38
39 config("backend_config") {
40   include_dirs = [ "public_overrides" ]
41 }
42
43 pw_source_set("config") {
44   public_deps = [ pw_trace_CONFIG ]
45   public_configs = [ ":public_include_path" ]
46   public = [ "public/pw_trace_tokenized/config.h" ]
47 }
48
49 pw_test_group("tests") {
50   tests = [
51     ":trace_tokenized_test",
52     ":tokenized_trace_buffer_test",
53     ":tokenized_trace_buffer_log_test",
54   ]
55 }
56
57 pw_source_set("pw_trace_tokenized") {
58   public_configs = [
59     ":backend_config",
60     ":public_include_path",
61   ]
62   public_deps = [
63     ":config",
64     ":pw_trace_tokenized_core",
65     "$dir_pw_tokenizer",
66   ]
67   if (pw_trace_tokenizer_time != "") {
68     deps = [ "$pw_trace_tokenizer_time" ]
69   }
70
71   public = [ "public_overrides/pw_trace_backend/trace_backend.h" ]
72 }
73
74 pw_test("trace_tokenized_test") {
75   enable_if = pw_trace_tokenizer_time != ""
76   deps = [
77     ":pw_trace_tokenized_core",
78     "$dir_pw_trace",
79   ]
80
81   sources = [ "trace_test.cc" ]
82 }
83
84 config("trace_buffer_size") {
85   defines = [ "PW_TRACE_BUFFER_SIZE_BYTES=${pw_trace_tokenized_BUFFER_SIZE}" ]
86 }
87
88 pw_source_set("tokenized_trace_buffer") {
89   deps = [ ":pw_trace_tokenized_core" ]
90   public_deps = [
91     ":config",
92     "$dir_pw_ring_buffer",
93     "$dir_pw_tokenizer",
94     "$dir_pw_varint",
95   ]
96   sources = [ "trace_buffer.cc" ]
97   public_configs = [
98     ":public_include_path",
99     ":trace_buffer_size",
100   ]
101   public = [ "public/pw_trace_tokenized/trace_buffer.h" ]
102 }
103
104 pw_test("tokenized_trace_buffer_test") {
105   enable_if = pw_trace_tokenizer_time != ""
106   deps = [
107     ":tokenized_trace_buffer",
108     "$dir_pw_trace",
109   ]
110
111   sources = [ "trace_buffer_test.cc" ]
112 }
113
114 pw_source_set("tokenized_trace_buffer_log") {
115   deps = [
116     "$dir_pw_base64",
117     "$dir_pw_log",
118     "$dir_pw_string",
119   ]
120   public_deps = [ ":tokenized_trace_buffer" ]
121   sources = [ "trace_buffer_log.cc" ]
122   public = [ "public/pw_trace_tokenized/trace_buffer_log.h" ]
123 }
124
125 pw_test("tokenized_trace_buffer_log_test") {
126   enable_if = pw_trace_tokenizer_time != ""
127   deps = [
128     ":tokenized_trace_buffer_log",
129     "$dir_pw_trace",
130   ]
131   sources = [ "trace_buffer_log_test.cc" ]
132 }
133
134 pw_source_set("fake_trace_time") {
135   deps = [ ":pw_trace_tokenized_core" ]
136   sources = [ "fake_trace_time.cc" ]
137 }
138
139 pw_source_set("host_trace_time") {
140   deps = [ ":pw_trace_tokenized_core" ]
141   sources = [ "host_trace_time.cc" ]
142 }
143
144 pw_source_set("pw_trace_tokenized_core") {
145   public_configs = [
146     ":backend_config",
147     ":public_include_path",
148   ]
149   public_deps = [
150     "$dir_pw_status",
151     "$dir_pw_tokenizer",
152   ]
153   deps = [
154     ":config",
155     "$dir_pw_assert",
156     "$dir_pw_ring_buffer",
157     "$dir_pw_trace:facade",
158     "$dir_pw_varint",
159   ]
160   public = [
161     "public/pw_trace_tokenized/internal/trace_tokenized_internal.h",
162     "public/pw_trace_tokenized/trace_callback.h",
163     "public/pw_trace_tokenized/trace_tokenized.h",
164   ]
165   sources = [ "trace.cc" ]
166 }
167
168 pw_doc_group("docs") {
169   sources = [ "docs.rst" ]
170 }
171
172 config("trace_example_config") {
173   include_dirs = [ "example/public" ]
174 }
175
176 pw_source_set("trace_example_to_file") {
177   deps = [ ":pw_trace_tokenized" ]
178   public_configs = [ ":trace_example_config" ]
179   public = [ "example/public/pw_trace_tokenized/example/trace_to_file.h" ]
180 }
181
182 # Builds trace examples
183 pw_executable("trace_tokenized_example_basic") {
184   deps = [
185     ":trace_example_to_file",
186     "$dir_pw_log",
187     "$dir_pw_trace",
188     "$dir_pw_trace:trace_sample_app",
189   ]
190   sources = [ "example/basic.cc" ]
191 }
192
193 pw_executable("trace_tokenized_example_trigger") {
194   deps = [
195     ":trace_example_to_file",
196     "$dir_pw_log",
197     "$dir_pw_trace",
198     "$dir_pw_trace:trace_sample_app",
199   ]
200   sources = [ "example/trigger.cc" ]
201 }
202
203 pw_executable("trace_tokenized_example_filter") {
204   deps = [
205     ":trace_example_to_file",
206     "$dir_pw_log",
207     "$dir_pw_trace",
208     "$dir_pw_trace:trace_sample_app",
209   ]
210   sources = [ "example/filter.cc" ]
211 }