Commit Graph

1053 Commits

Author SHA1 Message Date
Colin Cross
bf9f355f8d Merge "Fix panic when missing hiddenapi jar" am: f5df780fc2 am: f5a8e0e88d
am: c2c2824ff9

Change-Id: I358685842ca77c435a02b52bf2b278a841a51808
2019-04-03 07:23:30 -07:00
Colin Cross
caa0e1e341 Fix panic when missing hiddenapi jar
Fix a panic after reporting an error when a module is listed
in ProductHiddenAPIStubs but doesn't exist or doesn't produce
a dex jar.

Test: manual
Change-Id: I43643cbc5303536bfe0b02feedb03563ea0b540a
2019-04-02 13:03:46 -07:00
Colin Cross
32762a08eb Add support for protoc plugins am: fe17f6f0e8 am: 91c063cfdc
am: 7299e418df

Change-Id: I30e57f6678343f57233831775b62afa1f043a450
2019-04-02 10:31:28 -07:00
Colin Cross
57205f3cb4 Move proto compilation to RuleBuilder am: 19878da6a0 am: 61918685aa
am: c8a3eb9110

Change-Id: If3922ee1900d6f3888c7291997ac49d4a939c065
2019-04-02 10:31:13 -07:00
Colin Cross
fe17f6f0e8 Add support for protoc plugins
Add a proto.plugin property to allow specifying a custom protoc
plugin to generate the code.

Fixes: 70706119
Test: m am StreamingProtoTest
Change-Id: I1ecdd346284b42bbcc8297019d98d2cd564eb94c
2019-04-02 16:38:55 +00:00
Colin Cross
19878da6a0 Move proto compilation to RuleBuilder
Using blueprint.Rule for protoc commands was causing code duplication
because there was no good way to run the same protoc for cc, java and
python but then run custom source packaging steps for java and python.
Move most of the code into a common function that returns a
RuleBuilder, and then let java and python add their own commands at
the end of the rule.

Bug: 70706119
Test: All Soong tests
Test: m checkbuild
Change-Id: Ic692136775d273bcc4f4de99620ab4878667c83a
2019-04-02 16:38:47 +00:00
Colin Cross
a50a2464c6 Merge changes I7dd4ba7f,I7887a67a am: 92cc71606c am: 900574f0cd
am: 6c99a30bb7

Change-Id: If557897ed64ecdf8967299b5512392e5485767ae
2019-04-02 08:21:42 -07:00
Colin Cross
92cc71606c Merge changes I7dd4ba7f,I7887a67a
* changes:
  Add depfile support to RuleBuilder
  Add RuleBuilderCommand.Flags
2019-04-02 15:04:06 +00:00
Andrei-Valentin Onea
78eeaffcfc Merge "Automatically greylist code in 3P packages" am: dca6ac3e35 am: 595282ced1
am: 364388b3a5

Change-Id: I90eb022de6f2d718e8b2637a4c05dd2859045c67
2019-04-02 06:47:21 -07:00
Andrei-Valentin Onea
dca6ac3e35 Merge "Automatically greylist code in 3P packages" 2019-04-02 13:10:37 +00:00
Colin Cross
1d2cf0494a Add depfile support to RuleBuilder
Allow rules built with RuleBuilder to use depfiles.  Ninja only
supports a single depfile with single output.  If there are
multiple outputs in a rule, move all but the first to implicit
outputs.  If multiple depfiles are specified, use new support
in dep_fixer to combine additional depfiles into the first depfile.

Test: rule_builder_test.go
Change-Id: I7dd4ba7fdf9feaf89b3dd2b7abb0e79006e06018
2019-03-29 16:35:06 -07:00
Andrei Onea
896237b7b9 Automatically greylist code in 3P packages
Bug: 129387816
Test: m appcompat
Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py
Change-Id: Id55abed766a6de6a2c032ee12d5153ab73a8d65c
2019-03-29 16:51:43 +00:00
Jaewoong Jung
a4edf844da Merge "Fix an override_module bug." am: 044ead6b1a am: 5ce95f2eaf
am: ac24969630

Change-Id: I352a380486600c0b48a61daa0457eff09ceb8f66
2019-03-27 16:13:22 -07:00
Jaewoong Jung
a641ee9cc7 Fix an override_module bug.
proptools.PrependProperties doesn't replace a pointer when both the src
and the dst have one. This prevented override_module from overriding
simple value pointer properties when the base module has existing
values. It turns out this was why the name property needed to be
overwritten manually.

Bug: 122957760
Test: app_test.go
Change-Id: I3302287c31a560422548c22fade95261ddbe606a
2019-03-27 11:21:24 -07:00
Colin Cross
fdd34fae76 Merge "Always package JNI libs into android_test modules" am: eae12cf400 am: f394fb0a27
am: b1af785608

Change-Id: I73d8243ae1bd428098f4f60b4a22c9b50785c481
2019-03-27 09:07:26 -07:00
Colin Cross
47fa9d3d83 Always package JNI libs into android_test modules
android_test modules should always have native libraries packaged
into the APK even when use_embedded_native_libs: false is set.

Fixes: 129298278
Test: TestJNIPackaging
Change-Id: Idfcc630f7c6579c1280a920b5d71808b0a502e06
2019-03-27 15:09:52 +00:00
Jaewoong Jung
a97234fc3a Merge "Add package_name property to android_app." am: c7dd408f89 am: 2afb72b7a0
am: fa1f34f99f

Change-Id: I59d3f61a8624a2ad4f356d95c67c4d97cbd4c0a4
2019-03-27 07:31:03 -07:00
Jaewoong Jung
c7dd408f89 Merge "Add package_name property to android_app." 2019-03-27 14:13:15 +00:00
Jaewoong Jung
6f373f60c4 Add package_name property to android_app.
This enables users to override the package name of their apps either
directly in android_app or through override_android_app.

Bug: 122957760
Test: app_test.go
Change-Id: I98080a4076ce970fc85e58fc33495ba9b363eec9
2019-03-26 15:17:17 -07:00
Paul Duffin
e301bb88f9 Merge "Add java_test_helper_library" am: d637872f44 am: e988582019
am: 036526adad

Change-Id: Ie734f0aec3b503d0cc767772bc7422c435f9fbe6
2019-03-26 07:30:51 -07:00
Paul Duffin
42df144fd4 Add java_test_helper_library
Extracts testSuiteComponent() function to reduce duplication.

Bug: 128969758
Test: atest CtsJdwpTestCases
Change-Id: I23746b18112d22f8670666f429a665b34b1955fd
2019-03-25 11:48:01 +00:00
Colin Cross
235810e510 Merge "Don't visit disabled modules with SOONG_COLLECT_JAVA_DEPS=true" am: 6d75c9d18e am: 4e976b56be
am: d139b8037c

Change-Id: I2007374b40673f07085a94d110cf65cfeda9570e
2019-03-23 08:01:59 -07:00
Treehugger Robot
6d75c9d18e Merge "Don't visit disabled modules with SOONG_COLLECT_JAVA_DEPS=true" 2019-03-23 14:41:37 +00:00
Colin Cross
593bb1c16c Merge "Rename jetifier property and add it to androidmk" am: 4ada982da9 am: 33938d3188
am: eb1cebad0d

Change-Id: I6ae03146be0e84ac0391c5db2a944eb054b8a9e9
2019-03-22 23:32:57 -07:00
Treehugger Robot
4ada982da9 Merge "Rename jetifier property and add it to androidmk" 2019-03-23 06:09:25 +00:00
Colin Cross
c48428a6bb Don't visit disabled modules with SOONG_COLLECT_JAVA_DEPS=true
Calling AndroidMk() on a disabled module may not be safe because
the module will not have had GenerateAndroidBuildActions() called
on it to initialize the data structures that AndroidMk() expects
to exist.  Check module.Enabled() before generating IDE info.

Fixes: 129089976
Test: SOONG_COLLECT_JAVA_DEPS=true m nothing
Change-Id: Icd79088c532c1842801f2bf89d92bc1a67109936
2019-03-23 04:42:57 +00:00
Jaewoong Jung
fb96a51b76 Merge "Add synopsis for prebuilt_apis." am: 66f2e8701e am: a04359740d
am: 8dce4b328d

Change-Id: Ic4a3491e288d9d2316d49cbb1bf6c88ee4934988
2019-03-22 10:41:15 -07:00
Jaewoong Jung
66f2e8701e Merge "Add synopsis for prebuilt_apis." 2019-03-22 17:16:45 +00:00
Colin Cross
1001a7971a Rename jetifier property and add it to androidmk
Rename jetifier_enabled to jetifier since there are no users
yet and it is more consistent with the rest of the Soong
properties.  Also add it to androidmk translation.

Fixes: 123524520
Test: androidmk_test.go
Change-Id: Ib4c688cf3cb171a822ddf7dd49467522c4c1276c
2019-03-22 15:25:30 +00:00
Jaewoong Jung
79e3e79ee8 Merge "Add override_android_app module type." am: e9665723da am: 9874d6abe6
am: c3432e294e

Change-Id: I28638a23c6140ae1775187a2afc61b15db97f487
2019-03-22 07:57:11 -07:00
Jaewoong Jung
e9665723da Merge "Add override_android_app module type." 2019-03-22 14:36:04 +00:00
Inseob Kim
2d99aace46 Merge "Fix checking of empty slice properties" am: 6b200500cc am: 2aad89a882
am: adabb74d08

Change-Id: I2529e13a5310163b22ce41c12e5ab2242c944b4a
2019-03-21 19:00:18 -07:00
Treehugger Robot
6b200500cc Merge "Fix checking of empty slice properties" 2019-03-22 01:22:11 +00:00
Jaewoong Jung
5fb5b2a7f5 Add synopsis for prebuilt_apis.
Test: m soong_docs
Change-Id: I0e2cefd3dd24e5c8483d32cc325a37e96d3d495c
2019-03-21 17:44:11 -07:00
Jaewoong Jung
525443aa22 Add override_android_app module type.
This is a new implementation of overriding module types that makes use
of local variants. With this, product owners can use PRODUCT_PACKAGES to
decide which override module to include in their products.

Bug: 122957760
Bug: 123640028
Test: app_test.go
Change-Id: Ie65e97f615d006b6e9475193b6017ea9d97e8e97
2019-03-21 13:26:20 -07:00
Inseob Kim
6e93ac9a32 Fix checking of empty slice properties
Properties can be empty (not nil), and in that case some weird error
messages will happen to be emitted.

Bug: N/A
Test: try to build with api_pacakges: [] and srcs: []
Change-Id: I492077616e742072696265796520737465616b21
2019-03-21 22:04:01 +09:00
Anton Hansson
b56333c19b Separate device and product overlays am: 53c88448fd am: d24adcf68e
am: 40286c75e4

Change-Id: I1e6ae2fe7f5cc57271edce235b702b83b64a7902
2019-03-21 04:46:05 -07:00
Anton Hansson
53c88448fd Separate device and product overlays
This change adds book-keeping of whether an overlay came from
DEVICE_PACKAGE_OVERLAYS or PRODUCT_PACKAGE_OVERLAYS. This is
later used when writing the output to soong_app_prebuilt.mk, to
use either LOCAL_SOONG_[DEVICE|PRODUCT]_RRO_PACKAGES depending
on the original source.

This change is intended to be a noop on its own, but allows a
follow-up make change to customize the location of the auto-generated
RRO packages.

Bug: 127758779
Test: verify noop on presubmit targets
Change-Id: Ib24fe1d05be132c360dd6966f7c83968c9939f77
2019-03-21 11:25:46 +00:00
Colin Cross
75bace9c07 Replace ctx.ExpandSources with android.PathsForModuleSrc am: 8a49795df1 am: 9bcee1f400
am: 3cafca1d18

Change-Id: I8945a8a775d5931489ef3f3614046207dd816f1e
2019-03-20 12:53:01 -07:00
Colin Cross
ecfa227f40 Remove ModuleSrcPath am: 07e51619a2 am: 734ad216fe
am: 055d480456

Change-Id: I386ab7a179da59477acc38571f63e652ac47d8a2
2019-03-20 12:52:44 -07:00
Colin Cross
5654c3f42f Add dex_import module type am: 42be761ebd am: 66f3f2a01a
am: 5d56651745

Change-Id: I6a96468ef78f5cd0c1fab335e691bcc19a8988dd
2019-03-20 12:51:37 -07:00
Colin Cross
8a49795df1 Replace ctx.ExpandSources with android.PathsForModuleSrc
Move the logic from ctx.ExpandSources into android.PathsForModuleSrc
and ctx.ExpandSource into android.PathForModuleSrc, and deprecate
them.  When combined with the pathDepsMutator this will let all
properties that take source paths also take filegroups or genrule
outputs, as long as they are tagged with `android:"path"`.

Test: All soong tests
Change-Id: I01625e76b5da19240e9649bf26a014eeeafcab8f
2019-03-20 19:36:13 +00:00
Colin Cross
07e51619a2 Remove ModuleSrcPath
ModuleSrcPath was designed as a type that ensured that modules only
referenced sources inside the directory that contained the Android.bp
file.  In practice they don't work very well, because allowing
filegroups and genrules as inputs to any module that takes a source
path means that the path might end up being to a file in another
source directory or to a generated file in the output directory.

Remove ModuleSrcPath, replacing it with SourcePath in the places
that need to explicitly refer to a path in the source tree, or
Path where it may be a source path or a generated path.

Make PathForModuleSrc return a Path instead of a SourcePath in
preparation for consolidation with ctx.ExpandSources, which will
make it possibly return paths to generated files.

Test: All soong tests
Change-Id: I973a78470ed14307eea5f6d0cc93942775a65715
2019-03-20 19:36:03 +00:00
Colin Cross
42be761ebd Add dex_import module type
Add a module type for importing a prebuilt jar that contains
classes.dex files.

Test: m with a prebuilt jar that contains classes.dex files in
      PRODUCT_BOOT_JARS
Test: java_test.go, dexpreopt_test.go, dexpreopt_bootjars_test.go
Bug: 124804356
Bug: 125517186

Change-Id: I496848f9dca11f758d49b1cb68168cec7f8e1718
2019-03-20 19:29:59 +00:00
Colin Cross
11cdb3202b Merge "Support package_splits" am: d62bfe5604 am: c20ea4c09f
am: 58350d8d33

Change-Id: I727b1cb34b5a808f48b399d6ad938f7a993f3229
2019-03-20 10:49:05 -07:00
Adam Vartanian
1aad9078a2 Merge "Add Conscrypt to coverage" am: 36c70bcfcb am: cecf06a088
am: 637c287938

Change-Id: I082f23363577177ac00ee8f706eee0a9d960c986
2019-03-20 10:48:37 -07:00
Inseob Kim
7fd0627923 Merge "Refine error messages in case of missing api files" am: 03a471a853 am: 1c033c09d8
am: 165bafc1ce

Change-Id: I55cbbefe510083e31a0bca3cf61781be1b4231de
2019-03-20 10:48:09 -07:00
Treehugger Robot
d62bfe5604 Merge "Support package_splits" 2019-03-20 15:45:13 +00:00
Treehugger Robot
36c70bcfcb Merge "Add Conscrypt to coverage" 2019-03-20 14:52:06 +00:00
Inseob Kim
8098faad9f Refine error messages in case of missing api files
Some non-interpretable error messages has been shown in case of missing
current api files. Instead of that messy errors, This clearly tells
users what is the problem and how to fix it.

Bug: 126259114
Test: 1) try to build a sysprop_library and a java_sdk_library without
creating txt files under api/, and see it fails.
Test: 2) Copy and paste the emitted command, and try to build again.

Change-Id: I986781cc710475647c2b996b0f1c51a6f50c0ba2
2019-03-20 15:33:06 +09:00