xref: /aosp_15_r20/external/pigweed/third_party/tinyusb/BUILD.gn (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2022 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/error.gni")
18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni")
19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni")
20*61c4878aSAndroid Build Coastguard Workerimport("tinyusb.gni")
21*61c4878aSAndroid Build Coastguard Worker
22*61c4878aSAndroid Build Coastguard Worker# List of targets defined by this module.
23*61c4878aSAndroid Build Coastguard Worker_tinyusb_targets = [
24*61c4878aSAndroid Build Coastguard Worker  "device",
25*61c4878aSAndroid Build Coastguard Worker  "device_audio",
26*61c4878aSAndroid Build Coastguard Worker  "device_bth",
27*61c4878aSAndroid Build Coastguard Worker  "device_cdc",
28*61c4878aSAndroid Build Coastguard Worker  "device_dfu",
29*61c4878aSAndroid Build Coastguard Worker  "device_hid",
30*61c4878aSAndroid Build Coastguard Worker  "device_midi",
31*61c4878aSAndroid Build Coastguard Worker  "device_msc",
32*61c4878aSAndroid Build Coastguard Worker  "device_net",
33*61c4878aSAndroid Build Coastguard Worker  "device_usbtmc",
34*61c4878aSAndroid Build Coastguard Worker  "device_vendor",
35*61c4878aSAndroid Build Coastguard Worker  "device_video",
36*61c4878aSAndroid Build Coastguard Worker  "host",
37*61c4878aSAndroid Build Coastguard Worker  "host_cdc",
38*61c4878aSAndroid Build Coastguard Worker  "host_hid",
39*61c4878aSAndroid Build Coastguard Worker  "host_msc",
40*61c4878aSAndroid Build Coastguard Worker  "host_vendor",
41*61c4878aSAndroid Build Coastguard Worker]
42*61c4878aSAndroid Build Coastguard Worker
43*61c4878aSAndroid Build Coastguard Worker# This file defines multiple GN source_set for using tinyusb and its different
44*61c4878aSAndroid Build Coastguard Worker# parts. See docs.rst for the configuration details.
45*61c4878aSAndroid Build Coastguard Workerif (pw_third_party_tinyusb_SOURCE == "") {
46*61c4878aSAndroid Build Coastguard Worker  group("tinyusb") {
47*61c4878aSAndroid Build Coastguard Worker  }
48*61c4878aSAndroid Build Coastguard Worker  foreach(tinyusb_target, _tinyusb_targets) {
49*61c4878aSAndroid Build Coastguard Worker    group("${tinyusb_target}") {
50*61c4878aSAndroid Build Coastguard Worker    }
51*61c4878aSAndroid Build Coastguard Worker  }
52*61c4878aSAndroid Build Coastguard Worker} else if (pw_third_party_tinyusb_PORT == "") {
53*61c4878aSAndroid Build Coastguard Worker  pw_error("tinyusb") {
54*61c4878aSAndroid Build Coastguard Worker    message_lines = [
55*61c4878aSAndroid Build Coastguard Worker      "tinyusb is being used by $current_toolchain, but pw_third_party_tinyusb_PORT is not set.",
56*61c4878aSAndroid Build Coastguard Worker      "If this toolchain is intentionally using tinyusb, ensure your toolchain configuration for this target sets pw_third_party_tinyusb_PORT.",
57*61c4878aSAndroid Build Coastguard Worker    ]
58*61c4878aSAndroid Build Coastguard Worker  }
59*61c4878aSAndroid Build Coastguard Worker  foreach(tinyusb_target, _tinyusb_targets) {
60*61c4878aSAndroid Build Coastguard Worker    group("${tinyusb_target}") {
61*61c4878aSAndroid Build Coastguard Worker      deps = [ ":tinyusb" ]
62*61c4878aSAndroid Build Coastguard Worker    }
63*61c4878aSAndroid Build Coastguard Worker  }
64*61c4878aSAndroid Build Coastguard Worker} else if (pw_third_party_tinyusb_CONFIG == "") {
65*61c4878aSAndroid Build Coastguard Worker  pw_error("tinyusb") {
66*61c4878aSAndroid Build Coastguard Worker    message_lines = [
67*61c4878aSAndroid Build Coastguard Worker      "tinyusb is being used by $current_toolchain, but pw_third_party_tinyusb_CONFIG is not set.",
68*61c4878aSAndroid Build Coastguard Worker      "If this toolchain is intentionally using tinyusb, ensure your toolchain configuration for this target sets pw_third_party_tinyusb_CONFIG.",
69*61c4878aSAndroid Build Coastguard Worker    ]
70*61c4878aSAndroid Build Coastguard Worker  }
71*61c4878aSAndroid Build Coastguard Worker  foreach(tinyusb_target, _tinyusb_targets) {
72*61c4878aSAndroid Build Coastguard Worker    group("${tinyusb_target}") {
73*61c4878aSAndroid Build Coastguard Worker      deps = [ ":tinyusb" ]
74*61c4878aSAndroid Build Coastguard Worker    }
75*61c4878aSAndroid Build Coastguard Worker  }
76*61c4878aSAndroid Build Coastguard Worker} else {
77*61c4878aSAndroid Build Coastguard Worker  not_needed([ "_tinyusb_targets" ])
78*61c4878aSAndroid Build Coastguard Worker
79*61c4878aSAndroid Build Coastguard Worker  config("public_includes") {
80*61c4878aSAndroid Build Coastguard Worker    include_dirs = [ "$pw_third_party_tinyusb_SOURCE/src" ]
81*61c4878aSAndroid Build Coastguard Worker    visibility = [ ":*" ]
82*61c4878aSAndroid Build Coastguard Worker  }
83*61c4878aSAndroid Build Coastguard Worker
84*61c4878aSAndroid Build Coastguard Worker  pw_source_set("tinyusb") {
85*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
86*61c4878aSAndroid Build Coastguard Worker
87*61c4878aSAndroid Build Coastguard Worker    # tinyusb depends on headers provided by the other modules in this file
88*61c4878aSAndroid Build Coastguard Worker    # conditional to the features enabled by the config, so ignore those include
89*61c4878aSAndroid Build Coastguard Worker    # checks.
90*61c4878aSAndroid Build Coastguard Worker    check_includes = false
91*61c4878aSAndroid Build Coastguard Worker    allow_circular_includes_from = [ pw_third_party_tinyusb_PORT ]
92*61c4878aSAndroid Build Coastguard Worker    public_deps = [
93*61c4878aSAndroid Build Coastguard Worker      pw_third_party_tinyusb_CONFIG,
94*61c4878aSAndroid Build Coastguard Worker      pw_third_party_tinyusb_PORT,
95*61c4878aSAndroid Build Coastguard Worker    ]
96*61c4878aSAndroid Build Coastguard Worker    public = [
97*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_common.h",
98*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_compiler.h",
99*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_error.h",
100*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_fifo.h",
101*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_timeout.h",
102*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_types.h",
103*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_verify.h",
104*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/tusb.h",
105*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/tusb_option.h",
106*61c4878aSAndroid Build Coastguard Worker    ]
107*61c4878aSAndroid Build Coastguard Worker    sources = [
108*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/common/tusb_fifo.c",
109*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/tusb.c",
110*61c4878aSAndroid Build Coastguard Worker    ]
111*61c4878aSAndroid Build Coastguard Worker  }
112*61c4878aSAndroid Build Coastguard Worker
113*61c4878aSAndroid Build Coastguard Worker  ##############################################################################
114*61c4878aSAndroid Build Coastguard Worker  # Device side.
115*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device") {
116*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
117*61c4878aSAndroid Build Coastguard Worker    public_deps = [
118*61c4878aSAndroid Build Coastguard Worker      ":tinyusb",
119*61c4878aSAndroid Build Coastguard Worker      pw_third_party_tinyusb_PORT,
120*61c4878aSAndroid Build Coastguard Worker    ]
121*61c4878aSAndroid Build Coastguard Worker
122*61c4878aSAndroid Build Coastguard Worker    # Ports may need to include the device headers.
123*61c4878aSAndroid Build Coastguard Worker    allow_circular_includes_from = [ pw_third_party_tinyusb_PORT ]
124*61c4878aSAndroid Build Coastguard Worker    sources = [
125*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/device/usbd.c",
126*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/device/usbd_control.c",
127*61c4878aSAndroid Build Coastguard Worker    ]
128*61c4878aSAndroid Build Coastguard Worker    public = [
129*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/device/dcd.h",
130*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/device/usbd.h",
131*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/device/usbd_pvt.h",
132*61c4878aSAndroid Build Coastguard Worker    ]
133*61c4878aSAndroid Build Coastguard Worker  }
134*61c4878aSAndroid Build Coastguard Worker
135*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_audio") {
136*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
137*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
138*61c4878aSAndroid Build Coastguard Worker    sources =
139*61c4878aSAndroid Build Coastguard Worker        [ "$pw_third_party_tinyusb_SOURCE/src/class/audio/audio_device.c" ]
140*61c4878aSAndroid Build Coastguard Worker    public = [
141*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/audio/audio.h",
142*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/audio/audio_device.h",
143*61c4878aSAndroid Build Coastguard Worker    ]
144*61c4878aSAndroid Build Coastguard Worker  }
145*61c4878aSAndroid Build Coastguard Worker
146*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_bth") {
147*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
148*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
149*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/bth/bth_device.c" ]
150*61c4878aSAndroid Build Coastguard Worker    public = [ "$pw_third_party_tinyusb_SOURCE/src/class/bth/bth_device.h" ]
151*61c4878aSAndroid Build Coastguard Worker  }
152*61c4878aSAndroid Build Coastguard Worker
153*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_cdc") {
154*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
155*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
156*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_device.c" ]
157*61c4878aSAndroid Build Coastguard Worker    public = [
158*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc.h",
159*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_device.h",
160*61c4878aSAndroid Build Coastguard Worker    ]
161*61c4878aSAndroid Build Coastguard Worker  }
162*61c4878aSAndroid Build Coastguard Worker
163*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_dfu") {
164*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
165*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
166*61c4878aSAndroid Build Coastguard Worker    sources = [
167*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/dfu/dfu_device.c",
168*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/dfu/dfu_rt_device.c",
169*61c4878aSAndroid Build Coastguard Worker    ]
170*61c4878aSAndroid Build Coastguard Worker    public = [
171*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/dfu/dfu.h",
172*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/dfu/dfu_device.h",
173*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/dfu/dfu_rt_device.h",
174*61c4878aSAndroid Build Coastguard Worker    ]
175*61c4878aSAndroid Build Coastguard Worker  }
176*61c4878aSAndroid Build Coastguard Worker
177*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_hid") {
178*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
179*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
180*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/hid/hid_device.c" ]
181*61c4878aSAndroid Build Coastguard Worker    public = [
182*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/hid/hid.h",
183*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/hid/hid_device.h",
184*61c4878aSAndroid Build Coastguard Worker    ]
185*61c4878aSAndroid Build Coastguard Worker  }
186*61c4878aSAndroid Build Coastguard Worker
187*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_midi") {
188*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
189*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
190*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/midi/midi_device.c" ]
191*61c4878aSAndroid Build Coastguard Worker    public = [
192*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/midi/midi.h",
193*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/midi/midi_device.h",
194*61c4878aSAndroid Build Coastguard Worker    ]
195*61c4878aSAndroid Build Coastguard Worker  }
196*61c4878aSAndroid Build Coastguard Worker
197*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_msc") {
198*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
199*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
200*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/msc/msc_device.c" ]
201*61c4878aSAndroid Build Coastguard Worker    public = [
202*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/msc/msc.h",
203*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/msc/msc_device.h",
204*61c4878aSAndroid Build Coastguard Worker    ]
205*61c4878aSAndroid Build Coastguard Worker  }
206*61c4878aSAndroid Build Coastguard Worker
207*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_net") {
208*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
209*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
210*61c4878aSAndroid Build Coastguard Worker    sources = [
211*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/net/ecm_rndis_device.c",
212*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/net/ncm_device.c",
213*61c4878aSAndroid Build Coastguard Worker    ]
214*61c4878aSAndroid Build Coastguard Worker    public = [
215*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/net/ncm.h",
216*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/net/net_device.h",
217*61c4878aSAndroid Build Coastguard Worker    ]
218*61c4878aSAndroid Build Coastguard Worker  }
219*61c4878aSAndroid Build Coastguard Worker
220*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_usbtmc") {
221*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
222*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
223*61c4878aSAndroid Build Coastguard Worker    sources =
224*61c4878aSAndroid Build Coastguard Worker        [ "$pw_third_party_tinyusb_SOURCE/src/class/usbtmc/usbtmc_device.c" ]
225*61c4878aSAndroid Build Coastguard Worker    public = [
226*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/usbtmc/usbtmc.h",
227*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/usbtmc/usbtmc_device.h",
228*61c4878aSAndroid Build Coastguard Worker    ]
229*61c4878aSAndroid Build Coastguard Worker  }
230*61c4878aSAndroid Build Coastguard Worker
231*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_vendor") {
232*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
233*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":device" ]
234*61c4878aSAndroid Build Coastguard Worker    sources =
235*61c4878aSAndroid Build Coastguard Worker        [ "$pw_third_party_tinyusb_SOURCE/src/class/vendor/vendor_device.c" ]
236*61c4878aSAndroid Build Coastguard Worker    public =
237*61c4878aSAndroid Build Coastguard Worker        [ "$pw_third_party_tinyusb_SOURCE/src/class/vendor/vendor_device.h" ]
238*61c4878aSAndroid Build Coastguard Worker  }
239*61c4878aSAndroid Build Coastguard Worker
240*61c4878aSAndroid Build Coastguard Worker  pw_source_set("device_video") {
241*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
242*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":common" ]
243*61c4878aSAndroid Build Coastguard Worker    sources =
244*61c4878aSAndroid Build Coastguard Worker        [ "$pw_third_party_tinyusb_SOURCE/src/class/video/video_device.c" ]
245*61c4878aSAndroid Build Coastguard Worker    public = [
246*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/video/video.h",
247*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/video/video_device.h",
248*61c4878aSAndroid Build Coastguard Worker    ]
249*61c4878aSAndroid Build Coastguard Worker  }
250*61c4878aSAndroid Build Coastguard Worker
251*61c4878aSAndroid Build Coastguard Worker  ##############################################################################
252*61c4878aSAndroid Build Coastguard Worker  # Host side.
253*61c4878aSAndroid Build Coastguard Worker  pw_source_set("host") {
254*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
255*61c4878aSAndroid Build Coastguard Worker    public_deps = [
256*61c4878aSAndroid Build Coastguard Worker      ":tinyusb",
257*61c4878aSAndroid Build Coastguard Worker      pw_third_party_tinyusb_PORT,
258*61c4878aSAndroid Build Coastguard Worker    ]
259*61c4878aSAndroid Build Coastguard Worker
260*61c4878aSAndroid Build Coastguard Worker    # Ports may need to include the host headers.
261*61c4878aSAndroid Build Coastguard Worker    allow_circular_includes_from = [ pw_third_party_tinyusb_PORT ]
262*61c4878aSAndroid Build Coastguard Worker    sources = [
263*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/hub.c",
264*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/usbh.c",
265*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/usbh_control.c",
266*61c4878aSAndroid Build Coastguard Worker    ]
267*61c4878aSAndroid Build Coastguard Worker    public = [
268*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/hcd.h",
269*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/hcd_attr.h",
270*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/hub.h",
271*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/usbh.h",
272*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/host/usbh_classdriver.h",
273*61c4878aSAndroid Build Coastguard Worker    ]
274*61c4878aSAndroid Build Coastguard Worker  }
275*61c4878aSAndroid Build Coastguard Worker
276*61c4878aSAndroid Build Coastguard Worker  pw_source_set("host_cdc") {
277*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
278*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":host" ]
279*61c4878aSAndroid Build Coastguard Worker    sources = [
280*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_host.c",
281*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_rndis_host.c",
282*61c4878aSAndroid Build Coastguard Worker    ]
283*61c4878aSAndroid Build Coastguard Worker    public = [
284*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc.h",
285*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_host.h",
286*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_rndis.h",
287*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/cdc/cdc_rndis_host.h",
288*61c4878aSAndroid Build Coastguard Worker    ]
289*61c4878aSAndroid Build Coastguard Worker  }
290*61c4878aSAndroid Build Coastguard Worker
291*61c4878aSAndroid Build Coastguard Worker  pw_source_set("host_hid") {
292*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
293*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":host" ]
294*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/hid/hid_host.c" ]
295*61c4878aSAndroid Build Coastguard Worker    public = [
296*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/hid/hid.h",
297*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/hid/hid_host.h",
298*61c4878aSAndroid Build Coastguard Worker    ]
299*61c4878aSAndroid Build Coastguard Worker  }
300*61c4878aSAndroid Build Coastguard Worker
301*61c4878aSAndroid Build Coastguard Worker  pw_source_set("host_msc") {
302*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
303*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":host" ]
304*61c4878aSAndroid Build Coastguard Worker    sources = [ "$pw_third_party_tinyusb_SOURCE/src/class/msc/msc_host.c" ]
305*61c4878aSAndroid Build Coastguard Worker    public = [
306*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/msc/msc.h",
307*61c4878aSAndroid Build Coastguard Worker      "$pw_third_party_tinyusb_SOURCE/src/class/msc/msc_host.h",
308*61c4878aSAndroid Build Coastguard Worker    ]
309*61c4878aSAndroid Build Coastguard Worker  }
310*61c4878aSAndroid Build Coastguard Worker
311*61c4878aSAndroid Build Coastguard Worker  pw_source_set("host_vendor") {
312*61c4878aSAndroid Build Coastguard Worker    public_configs = [ ":public_includes" ]
313*61c4878aSAndroid Build Coastguard Worker    public_deps = [ ":host" ]
314*61c4878aSAndroid Build Coastguard Worker    sources =
315*61c4878aSAndroid Build Coastguard Worker        [ "$pw_third_party_tinyusb_SOURCE/src/class/vendor/vendor_host.c" ]
316*61c4878aSAndroid Build Coastguard Worker    public = [ "$pw_third_party_tinyusb_SOURCE/src/class/vendor/vendor_host.h" ]
317*61c4878aSAndroid Build Coastguard Worker  }
318*61c4878aSAndroid Build Coastguard Worker}
319*61c4878aSAndroid Build Coastguard Worker
320*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") {
321*61c4878aSAndroid Build Coastguard Worker  sources = [ "docs.rst" ]
322*61c4878aSAndroid Build Coastguard Worker}
323