Commit Graph

5 Commits

Author SHA1 Message Date
Ashley Rose
171a723c10 Code generation for @InspectableProperty
This does not include the annotation processing needed to build the
property model the generator consumes or support for IntEnumMapping or
IntFlagMapping. Support will be added in subsequent CLs.

Bug: 117616612
Test: atest --host view-inspector-annotation-processor-test
Change-Id: I1d7829a12c7243645a96a32c8fc22b13c70c64e1
2018-12-11 23:57:10 +00:00
Ashley Rose
de080eb7b0 Annotation processor for @InspectableNodeName
Bug: 117616612
Test: atest --host view-inspector-annotation-processor-test
Change-Id: I48f62544655adbc33e3ccdd3301d6dc471fe4163
2018-12-10 23:30:43 +00:00
Mathew Inwood
bd7077065c Include annotation property values in output.
When editing annotations, we want the ability *not* to overwrite any
existing annotation properties already in place. Include any properties
set on the annotation in the output, so that the edit_annotations script
can know that they're there.

The annotation properties are encoded like URL query parameters for
convenience; it makes them easy to encode here & subsequently decode on
the other side (in Python).

Test: m framework-annotation-proc & inpsect output.
Change-Id: I71fb1215ad2790751be336b4955c163bb323a4a6
2018-11-30 09:00:43 +00:00
Tobias Thierer
8fb3615729 Fix compilation when targeting OpenJDK 9.
CL [1] added a new compilation target that uses internal API
that is now in the jdk.compiler module and is not exported
(it is subject to removal without notice in future versions of
OpenJDK). The fact that these packages are not exported suggests
that a replacement API is already available, but I don't know the
details.

For now, this CL uses javac command-line flags to export these
packages, which fixes compilation. Since the commit message from
CL [1] implies that the entire tool can be removed once bug 77284273
is fixed, a longer-term solution should not be required.

[1] https://android-review.googlesource.com/c/platform/frameworks/base/+/745655
    commit bad89e5e5b

Test: The following breaks before but not after this CL:
  EXPERIMENTAL_USE_OPENJDK9=true make unsupportedappusage-annotation-processor
Bug: 113853502

Change-Id: I24b77af9262891428a01e2eccc18fa3a5c3b3bc9
2018-09-06 17:33:57 +01:00
Mathew Inwood
bad89e5e5b Processor for @UnsupportedAppUsage annotations.
The processor outputs unsupportedappusage_index.csv, containing source
position info for every@UnsupportedAppUsage annotation processed. It is a
mapping of dex signature to the source postion of the annotation on that
signature. It is used as input for scripts which update the annotations.

We include a META-INF file which causes the compiler to automatically
pick up the annotation processor. Otherwise we would need to explicitly
specify the processor with a -processor flag to javac.

We create a new build target for just the @UnsupportedAppUsage annotation
and the @IntDef annotation (which it depends on) so that the processor can
also depend on that directly.

The processor only runs on a new build target framework-annotation-proc
so that it is not invoked as part of a regular build. This is done so
that we don't slow down peoples builds: Soong does not support annotation
processors when javac sharding is in use. This workaround can be removed
once b/77284273 is fixed.

Test: m framework-annotation-proc
Bug: 113853502

Change-Id: Ie9cd5a90ddf7a51f6035e849703fc39ad9127557
2018-09-05 15:01:21 +01:00