xref: /aosp_15_r20/external/oj-libjdwp/Android.bp (revision e82f7db8c62aed3c168547abe4f9f4aeceaebfc7)
1package {
2    default_applicable_licenses: ["external_oj-libjdwp_license"],
3}
4
5// Added automatically by a large-scale-change that took the approach of
6// 'apply every license found to every target'. While this makes sure we respect
7// every license restriction, it may not be entirely correct.
8//
9// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10//
11// Please consider splitting the single license below into multiple licenses,
12// taking care not to lose any license_kind information, and overriding the
13// default license using the 'licenses: [...]' property on targets as needed.
14//
15// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16// to attach the license to, and including a comment whether the files may be
17// used in the current project.
18// See: http://go/android-license-faq
19license {
20    name: "external_oj-libjdwp_license",
21    visibility: [":__subpackages__"],
22    license_kinds: [
23        "SPDX-license-identifier-Apache-2.0",
24        "SPDX-license-identifier-GPL-2.0-with-classpath-exception",
25    ],
26    license_text: [
27        "LICENSE",
28    ],
29}
30
31java_binary_host {
32    name: "jdwpgen",
33    srcs: ["make/src/classes/build/tools/jdwpgen/*.java"],
34    wrapper: "etc/jdwpgen.sh",
35    manifest: "etc/manifest.txt",
36    java_version: "1.8",
37}
38
39genrule {
40    name: "jdwp_generated_headers",
41    tools: ["jdwpgen"],
42    cmd: "$(location jdwpgen) $(in) -include $(out)",
43    srcs: ["make/data/jdwp/jdwp.spec"],
44    out: ["JDWPCommands.h"],
45}
46
47cc_defaults {
48    name: "upstream-jdwp-defaults",
49    host_supported: true,
50    device_supported: true,
51    cflags: [
52        // Every supported android platform is little-endian.
53        "-D_LITTLE_ENDIAN",
54        "-Wall",
55        "-Werror",
56        "-Wno-unused-parameter",
57    ],
58    target: {
59        darwin: {
60            enabled: false,
61        },
62    },
63}
64
65cc_library_headers {
66    name: "javavm_headers",
67    export_include_dirs: [
68        "src/share/javavm/export",
69        "src/solaris/javavm/export",
70    ],
71    host_supported: true,
72    device_supported: true,
73
74    apex_available: [
75        "com.android.art",
76        "com.android.art.debug",
77    ],
78    min_sdk_version: "S",
79}
80
81cc_library_headers {
82    name: "libnpt_headers",
83    export_include_dirs: [
84        "src/share/npt",
85        "src/solaris/npt",
86    ],
87    defaults: ["upstream-jdwp-defaults"],
88
89    apex_available: [
90        "com.android.art",
91        "com.android.art.debug",
92    ],
93    min_sdk_version: "S",
94}
95
96cc_library {
97    name: "libnpt",
98    srcs: [
99        "src/share/npt/*.c",
100        "src/solaris/npt/*.c",
101    ],
102    header_libs: [
103        "javavm_headers",
104        "libnpt_headers",
105    ],
106    defaults: ["upstream-jdwp-defaults"],
107    apex_available: [
108        "com.android.art",
109        "com.android.art.debug",
110    ],
111    min_sdk_version: "S",
112}
113
114cc_library_headers {
115    name: "libjdwp_headers",
116    export_include_dirs: [
117        "src/share/back",
118        "src/share/back/export",
119        "src/solaris/back",
120    ],
121    generated_headers: ["jdwp_generated_headers"],
122    export_generated_headers: ["jdwp_generated_headers"],
123    defaults: ["upstream-jdwp-defaults"],
124
125    apex_available: [
126        "com.android.art",
127        "com.android.art.debug",
128    ],
129    min_sdk_version: "S",
130}
131
132cc_library {
133    name: "libjdwp",
134    srcs: [
135        "src/share/back/*.c",
136        "src/solaris/back/*.c",
137    ],
138    cflags: [
139        "-DLINUX",
140        "-DJDWP_LOGGING",
141        "-Wno-switch",
142        "-Wno-logical-op-parentheses",
143        "-Wno-logical-not-parentheses",
144        "-Wno-sometimes-uninitialized",
145        "-Wno-self-assign",
146        "-Wno-unused-variable",
147        "-Wno-unused-function",
148    ],
149    header_libs: [
150        "javavm_headers",
151        "libjdwp_headers",
152        "libnpt_headers",
153    ],
154    runtime_libs: [
155        "libnpt",
156        "libdt_socket",
157    ],
158    defaults: ["upstream-jdwp-defaults"],
159    apex_available: [
160        "com.android.art",
161        "com.android.art.debug",
162    ],
163    min_sdk_version: "S",
164}
165
166cc_library {
167    name: "libdt_socket",
168    srcs: [
169        "src/share/transport/socket/*.c",
170        "src/solaris/transport/socket/*.c",
171    ],
172    local_include_dirs: [
173        "src/share/transport/socket",
174        "src/solaris/transport/socket",
175    ],
176    header_libs: [
177        "javavm_headers",
178        "libjdwp_headers",
179        "libnpt_headers",
180    ],
181    runtime_libs: ["libnpt"],
182    defaults: ["upstream-jdwp-defaults"],
183    apex_available: [
184        "com.android.art",
185        "com.android.art.debug",
186    ],
187    min_sdk_version: "S",
188}
189
190genrule {
191    name: "jdwp_generated_java",
192    tools: ["jdwpgen"],
193    cmd: "$(location jdwpgen) $(in) -jdi $(out)",
194    srcs: ["make/data/jdwp/jdwp.spec"],
195    out: ["JDWP.java"],
196}
197
198python_binary_host {
199  name: "jdi_prop_gen",
200  srcs: ["etc/jdigen.py"],
201  main: "etc/jdigen.py",
202}
203
204genrule {
205  name: "jdi_generated_properties",
206  tools: ["jdi_prop_gen"],
207  cmd: "$(location jdi_prop_gen) $(in) $(out)",
208  out: ["jdi.java"],
209  srcs: ["src/share/classes/com/sun/tools/jdi/resources/jdi.properties"],
210}
211
212// The classes needed to support JDI and debug remote processes.
213java_library_host {
214  name: "jdi-support",
215  srcs: [
216    // The JDI interface definition.
217    "src/share/classes/com/sun/jdi/**/*.java",
218    // The JDI interface implementation
219    "src/share/classes/com/sun/tools/jdi/**/*.java",
220    // The JDWP.java file that contains all the constants.
221    ":jdwp_generated_java",
222    // The properties class which holds information about the various connectors.
223    ":jdi_generated_properties",
224  ],
225  exclude_srcs: [
226    // We don't support process attachment and lack some of the classes to even compile this file.
227    "src/share/classes/com/sun/tools/jdi/ProcessAttachingConnector.java",
228  ],
229  services: ["etc/com.sun.jdi.connect.Connector"],
230  java_version: "1.8",
231  javacflags: ["-g"],
232  errorprone: {
233    javacflags: [
234      "-Xep:ReturnValueIgnored:WARN",
235      "-Xep:EmptyTopLevelDeclaration:WARN",
236    ],
237  },
238}
239