Commit Graph

1068 Commits

Author SHA1 Message Date
Jiyong Park
d37a882ad4 Set default target SDK version for APEX
Target SDK version is used for targeting an APEX to a specific set of
platform builds. Usually, the targeting is unrestricted (in case the
APEX can run on all platforms), or based on platform SDK version (e.g.
28 for P). However, when the platform is under development and SDK is
not finalized, the targeting should be much more fine-grained; the
APEX should be targeted to a very specific build that supports the same
set of APIs that the APEX was built against.

To support that, target sdk version is automatically set by the build
system. When the platform is released or SDK is finalized, the target sdk
version set to the SDK version number. If not, it is set to
<version_code>.<fingerprint> (e.g., Q.123456).
Note that the target sdk version set by the build system is used only
when the target sdk version is not explicitly set in
AndroidManifest.xml.

Bug: 130541924
Test: UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true \
UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true \
TARGET_BUILD_APPS=com.android.tzdata m
build.ninja has --target_sdk_version Q.$$(cat out/soong/api_fingerprint.txt)

Test: aapt dump badging out/dist/com.android.tzdata.apex | grep \
targetSdkVersion shows:
targetSdkVersion:'Q.6ee443d9ad5f0cca7a43cfa97b7fc62a'

Merged-In: I086230d787f01075c28fc3f0163550300fa00212
Change-Id: I086230d787f01075c28fc3f0163550300fa00212
(cherry picked from commit 71b519d6ce)
2019-04-23 14:26:06 +09:00
Colin Cross
5c87791a78 Allow codename.fingerprint format for targetSdkVersion
Use codename.fingerprint format for targetSdkVersion if it is unset
in the manifest and UNBUNDLED_BUILD_TARGET_SDK_WITH_API_FINGERPRINT=true.

Test: manual
Bug: 130541924
Change-Id: I4e3b1274cc32038b00b292dc6d67559eb320e9e4
Merged-In: I4e3b1274cc32038b00b292dc6d67559eb320e9e4
(cherry picked from commit 109328714f)
2019-04-22 10:08:35 -07:00
Colin Cross
9bdfaf0591 Build framework.aidl in Soong
Move the rules to build framework.aidl into Soong, and use it
when compiling aidl files with sdk_version: "current".

Also fixes incorrectly using the aidl includes exported by the
"framework" module when the proguardRaiseDep dependency was
added.

Bug: 130798034
Test: sdk_test.go
Change-Id: I126adf1d9e7b6acb528875ff62b974ba7ad9a337
Merged-In: I126adf1d9e7b6acb528875ff62b974ba7ad9a337
(cherry picked from commit 3047fa23da)
2019-04-22 10:08:35 -07:00
Colin Cross
31174703be Get default sdk_test.go values from config
This will help avoid merge conflicts between branches that have
additional default libraries.

Bug: 130798034
Test: sdk_test.go
Change-Id: I98d5b8b2ea939df7ef57686f3bd913d6a21edc5d
Merged-In: I98d5b8b2ea939df7ef57686f3bd913d6a21edc5d
(cherry picked from commit 901ea31b7c)
2019-04-22 10:08:17 -07:00
Colin Cross
1bdf650bb1 Make makevars deterministic
Sort map keys before iterating over them to produce makevars.

Bug: 130411407
Test: m checkbuild
Change-Id: I4153977705da05a5c73e641f93d02f408209c897
Merged-In: I4153977705da05a5c73e641f93d02f408209c897
(cherry picked from commit 91268c668c)
2019-04-16 14:50:10 -07:00
TreeHugger Robot
353222b81d Merge "Fix package path of android/soong/android pctx" into qt-dev 2019-04-12 17:24:18 +00:00
Colin Cross
713ef2b424 Fix package path of android/soong/android pctx
android/soong/common was renamed to android/soong/android long
ago, but the pctx package path was still "android/soong/common".
This required all users of rules defined in android/soong/android
to import "android/soong/android" and then
pctx.Import("android/soong/common").

Bug: 130298888
Test: m checkbuild
Change-Id: I20d096522760538f7cfc2bec3d4bfeba99b275d4
2019-04-10 16:49:27 -07:00
Dan Willemsen
5584699125 Include proper deps for signapk
Bug: 130111713
Test: run signapk remotely, action succeeds after this change
Change-Id: I1670a27341591e0762cdfb42bcf424f065837192
Merged-In: I1670a27341591e0762cdfb42bcf424f065837192
(cherry picked from commit c4bd8f8282)
2019-04-10 12:21:09 -07:00
Vladimir Marko
96f7be168e Merge "Check package restrictions for Java libs." into qt-dev 2019-04-09 15:33:06 +00:00
Vladimir Marko
e26f4a5e39 Check package restrictions for Java libs.
Test: m checkbuild; inspect verbose log.
Test: Manual - compile with unmet restrictions.
Bug: 122937705

(cherry picked from commit 0975ee0de3)

Change-Id: Ibecfb53072f060e046d3c8fdca0911d66cc6922d
Merged-In: I9360ae8b6d9ce016b7827be5e8ffc6eb521809b7
2019-04-09 10:04:53 +01:00
Nicolas Geoffray
cd6abd83ee Use the full dexpreopt boot classpath when preopting with other images.
Bug: 119800099
Test: m

(cherry picked from commit 06758a7e13)

Change-Id: I60c154c3b3e2ab9b80ea9df0efa168ccd9efcc60
Merged-In: Ia9b34aa92ebb1b4de96ea0f8f290d798be19b2cf
2019-04-08 22:47:39 +01:00
Nicolas Geoffray
0ebdd3430e Use the apex image when the device config asks for it.
Test: lunch walleye_jitzygote-userdebug m && all odex file use the apex image
Bug: 119800099

(cherry picked from commit 25c0e03520)

Change-Id: I901ed57136885f87470d1ee398b92972151547f2
Merged-In: Id2fff6a4569d48b8e6a886cb82bdba205b0dd56a
2019-04-05 13:57:47 +01:00
Colin Cross
49c87dfae9 Merge "Fix sdk_version: "system_current" when Platform_sdk_final=true" am: b007b2bde5 am: 8c3f398c6c
am: 209edee425

Change-Id: I54ea846c9ac2b29354109755225db71dcdaa1527
2019-04-03 14:04:07 -07:00
Colin Cross
b007b2bde5 Merge "Fix sdk_version: "system_current" when Platform_sdk_final=true" 2019-04-03 18:40:09 +00:00
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
ff0daf4ccf Fix sdk_version: "system_current" when Platform_sdk_final=true
When PLATFORM_VERSION_CODENAME is set to REL Platform_sdk_final
becomes true, which causes the return value of sdkVersionToNumber
for "system_current" to a real version number instead of
FutureApiLevel.  This enables the check against
PlatformSystemSdkVersions, which doesn't contain "current".  Use
the numeric value instead.

Fixes: 129786845
Test: sdk_test.go
Change-Id: If7cf211cc01c5fbf3e3ece3c3f604718a13d5a9b
2019-04-02 23:18:30 +00: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