xref: /aosp_15_r20/external/libusb/Android.bp (revision 86b64dcb59b3a0b37502ecd56e119234366a6f7e)
1*86b64dcbSAndroid Build Coastguard Workerpackage {
2*86b64dcbSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_libusb_license"],
3*86b64dcbSAndroid Build Coastguard Worker}
4*86b64dcbSAndroid Build Coastguard Worker
5*86b64dcbSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
6*86b64dcbSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
7*86b64dcbSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
8*86b64dcbSAndroid Build Coastguard Worker//
9*86b64dcbSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10*86b64dcbSAndroid Build Coastguard Worker//
11*86b64dcbSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
12*86b64dcbSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
13*86b64dcbSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
14*86b64dcbSAndroid Build Coastguard Worker//
15*86b64dcbSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16*86b64dcbSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
17*86b64dcbSAndroid Build Coastguard Worker// used in the current project.
18*86b64dcbSAndroid Build Coastguard Worker//
19*86b64dcbSAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license
20*86b64dcbSAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
21*86b64dcbSAndroid Build Coastguard Worker//
22*86b64dcbSAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'.
23*86b64dcbSAndroid Build Coastguard Worker// See: http://go/android-license-faq
24*86b64dcbSAndroid Build Coastguard Workerlicense {
25*86b64dcbSAndroid Build Coastguard Worker    name: "external_libusb_license",
26*86b64dcbSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
27*86b64dcbSAndroid Build Coastguard Worker    license_kinds: [
28*86b64dcbSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL",
29*86b64dcbSAndroid Build Coastguard Worker        "SPDX-license-identifier-LGPL",
30*86b64dcbSAndroid Build Coastguard Worker        "SPDX-license-identifier-LGPL-2.1",
31*86b64dcbSAndroid Build Coastguard Worker        "SPDX-license-identifier-LGPL-3.0",
32*86b64dcbSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
33*86b64dcbSAndroid Build Coastguard Worker    ],
34*86b64dcbSAndroid Build Coastguard Worker    license_text: [
35*86b64dcbSAndroid Build Coastguard Worker        "COPYING",
36*86b64dcbSAndroid Build Coastguard Worker        "NOTICE",
37*86b64dcbSAndroid Build Coastguard Worker    ],
38*86b64dcbSAndroid Build Coastguard Worker}
39*86b64dcbSAndroid Build Coastguard Worker
40*86b64dcbSAndroid Build Coastguard Workercc_defaults {
41*86b64dcbSAndroid Build Coastguard Worker    name: "libusb_defaults",
42*86b64dcbSAndroid Build Coastguard Worker    host_supported: true,
43*86b64dcbSAndroid Build Coastguard Worker    vendor_available: true,
44*86b64dcbSAndroid Build Coastguard Worker
45*86b64dcbSAndroid Build Coastguard Worker    srcs: [
46*86b64dcbSAndroid Build Coastguard Worker        "libusb/core.c",
47*86b64dcbSAndroid Build Coastguard Worker        "libusb/descriptor.c",
48*86b64dcbSAndroid Build Coastguard Worker        "libusb/hotplug.c",
49*86b64dcbSAndroid Build Coastguard Worker        "libusb/io.c",
50*86b64dcbSAndroid Build Coastguard Worker        "libusb/sync.c",
51*86b64dcbSAndroid Build Coastguard Worker        "libusb/strerror.c",
52*86b64dcbSAndroid Build Coastguard Worker    ],
53*86b64dcbSAndroid Build Coastguard Worker
54*86b64dcbSAndroid Build Coastguard Worker    target: {
55*86b64dcbSAndroid Build Coastguard Worker        linux: {
56*86b64dcbSAndroid Build Coastguard Worker            srcs: [
57*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/events_posix.c",
58*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/linux_usbfs.c",
59*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/threads_posix.c",
60*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/linux_netlink.c",
61*86b64dcbSAndroid Build Coastguard Worker            ],
62*86b64dcbSAndroid Build Coastguard Worker        },
63*86b64dcbSAndroid Build Coastguard Worker
64*86b64dcbSAndroid Build Coastguard Worker        android: {
65*86b64dcbSAndroid Build Coastguard Worker            local_include_dirs: [
66*86b64dcbSAndroid Build Coastguard Worker                "android",
67*86b64dcbSAndroid Build Coastguard Worker            ],
68*86b64dcbSAndroid Build Coastguard Worker
69*86b64dcbSAndroid Build Coastguard Worker            cflags: ["-Werror"],
70*86b64dcbSAndroid Build Coastguard Worker        },
71*86b64dcbSAndroid Build Coastguard Worker
72*86b64dcbSAndroid Build Coastguard Worker        darwin: {
73*86b64dcbSAndroid Build Coastguard Worker            srcs: [
74*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/events_posix.c",
75*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/darwin_usb.c",
76*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/threads_posix.c",
77*86b64dcbSAndroid Build Coastguard Worker            ],
78*86b64dcbSAndroid Build Coastguard Worker
79*86b64dcbSAndroid Build Coastguard Worker            local_include_dirs: [
80*86b64dcbSAndroid Build Coastguard Worker                "darwin",
81*86b64dcbSAndroid Build Coastguard Worker            ],
82*86b64dcbSAndroid Build Coastguard Worker
83*86b64dcbSAndroid Build Coastguard Worker            host_ldlibs: [
84*86b64dcbSAndroid Build Coastguard Worker                "-framework CoreFoundation",
85*86b64dcbSAndroid Build Coastguard Worker                "-framework IOKit",
86*86b64dcbSAndroid Build Coastguard Worker                "-framework Security",
87*86b64dcbSAndroid Build Coastguard Worker                "-lobjc",
88*86b64dcbSAndroid Build Coastguard Worker            ],
89*86b64dcbSAndroid Build Coastguard Worker
90*86b64dcbSAndroid Build Coastguard Worker            cflags: [
91*86b64dcbSAndroid Build Coastguard Worker                "-Wno-deprecated-declarations",
92*86b64dcbSAndroid Build Coastguard Worker                "-Wno-unguarded-availability",
93*86b64dcbSAndroid Build Coastguard Worker            ],
94*86b64dcbSAndroid Build Coastguard Worker        },
95*86b64dcbSAndroid Build Coastguard Worker
96*86b64dcbSAndroid Build Coastguard Worker        host_linux: {
97*86b64dcbSAndroid Build Coastguard Worker            local_include_dirs: [
98*86b64dcbSAndroid Build Coastguard Worker                "linux",
99*86b64dcbSAndroid Build Coastguard Worker            ],
100*86b64dcbSAndroid Build Coastguard Worker
101*86b64dcbSAndroid Build Coastguard Worker            cflags: ["-Werror"],
102*86b64dcbSAndroid Build Coastguard Worker        },
103*86b64dcbSAndroid Build Coastguard Worker
104*86b64dcbSAndroid Build Coastguard Worker        windows: {
105*86b64dcbSAndroid Build Coastguard Worker            srcs: [
106*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/events_windows.c",
107*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/threads_windows.c",
108*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/windows_common.c",
109*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/windows_usbdk.c",
110*86b64dcbSAndroid Build Coastguard Worker                "libusb/os/windows_winusb.c",
111*86b64dcbSAndroid Build Coastguard Worker            ],
112*86b64dcbSAndroid Build Coastguard Worker
113*86b64dcbSAndroid Build Coastguard Worker            local_include_dirs: [
114*86b64dcbSAndroid Build Coastguard Worker                "windows",
115*86b64dcbSAndroid Build Coastguard Worker            ],
116*86b64dcbSAndroid Build Coastguard Worker
117*86b64dcbSAndroid Build Coastguard Worker            cflags: [
118*86b64dcbSAndroid Build Coastguard Worker                "-Wno-error=pragma-pack",
119*86b64dcbSAndroid Build Coastguard Worker                "-Wno-error=missing-field-initializers",
120*86b64dcbSAndroid Build Coastguard Worker                "-Wno-error=ignored-attributes",
121*86b64dcbSAndroid Build Coastguard Worker            ],
122*86b64dcbSAndroid Build Coastguard Worker
123*86b64dcbSAndroid Build Coastguard Worker            enabled: true,
124*86b64dcbSAndroid Build Coastguard Worker        },
125*86b64dcbSAndroid Build Coastguard Worker    },
126*86b64dcbSAndroid Build Coastguard Worker
127*86b64dcbSAndroid Build Coastguard Worker    local_include_dirs: [
128*86b64dcbSAndroid Build Coastguard Worker        "libusb",
129*86b64dcbSAndroid Build Coastguard Worker        "libusb/os",
130*86b64dcbSAndroid Build Coastguard Worker    ],
131*86b64dcbSAndroid Build Coastguard Worker
132*86b64dcbSAndroid Build Coastguard Worker    cflags: [
133*86b64dcbSAndroid Build Coastguard Worker        "-Wall",
134*86b64dcbSAndroid Build Coastguard Worker        "-Wno-error=sign-compare",
135*86b64dcbSAndroid Build Coastguard Worker        "-Wno-error=switch",
136*86b64dcbSAndroid Build Coastguard Worker        "-Wno-error=unused-function",
137*86b64dcbSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
138*86b64dcbSAndroid Build Coastguard Worker        "-DENABLE_LOGGING=1",
139*86b64dcbSAndroid Build Coastguard Worker    ],
140*86b64dcbSAndroid Build Coastguard Worker
141*86b64dcbSAndroid Build Coastguard Worker    shared_libs: ["liblog"],
142*86b64dcbSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
143*86b64dcbSAndroid Build Coastguard Worker}
144*86b64dcbSAndroid Build Coastguard Worker
145*86b64dcbSAndroid Build Coastguard Workercc_library {
146*86b64dcbSAndroid Build Coastguard Worker    name: "libusb",
147*86b64dcbSAndroid Build Coastguard Worker    defaults: ["libusb_defaults"],
148*86b64dcbSAndroid Build Coastguard Worker}
149*86b64dcbSAndroid Build Coastguard Worker
150*86b64dcbSAndroid Build Coastguard Worker// "libusb_plaform" should be depended upon only by programs running on Android
151*86b64dcbSAndroid Build Coastguard Worker// at OS level (e.g. Android platform services). The reason is that programs
152*86b64dcbSAndroid Build Coastguard Worker// using "libusb_platform" must have permission to access netlink sockets.
153*86b64dcbSAndroid Build Coastguard Workercc_library {
154*86b64dcbSAndroid Build Coastguard Worker    name: "libusb_platform",
155*86b64dcbSAndroid Build Coastguard Worker    defaults: ["libusb_defaults"],
156*86b64dcbSAndroid Build Coastguard Worker    target: {
157*86b64dcbSAndroid Build Coastguard Worker        android: {
158*86b64dcbSAndroid Build Coastguard Worker            cflags: [
159*86b64dcbSAndroid Build Coastguard Worker                "-Werror",
160*86b64dcbSAndroid Build Coastguard Worker                "-DANDROID_OS", // ANDROID_OS flag signals that the program
161*86b64dcbSAndroid Build Coastguard Worker                // using libusb runs at Android OS level and allows netlink
162*86b64dcbSAndroid Build Coastguard Worker                // event monitoring. See libusb/os/linux_usbfs.h.
163*86b64dcbSAndroid Build Coastguard Worker            ],
164*86b64dcbSAndroid Build Coastguard Worker        },
165*86b64dcbSAndroid Build Coastguard Worker    },
166*86b64dcbSAndroid Build Coastguard Worker}
167