Commit Graph

20237 Commits

Author SHA1 Message Date
Colin Cross
3cda0d8df9 Add DistForGoal to MakeVarsContext
Add methods to MakeVarsContext to allow Singletons to dist
artifacts without manually adding $(dist-for-goals) in Make.

Test: m checkbuild
Change-Id: Ia5ddb31afe29329f2df0ae1297ed963c8c28e590
2020-06-09 14:38:51 -07:00
Colin Cross
c3d87d3112 Define Soong phony rules in Make
To support dist-for-goals in Soong, we need to define all phony rules
in Make so that dist-for-goals can insert additional dependencies on
them.  Collect all the phony rules in phonySingleton and write them
out as Make rules when Soong is embedded in Make, or as blueprint.Phony
rules when Soong is run standalone.

Test: m checkbuild
Change-Id: I68201eff30744b0f487fc4f11f033767b53a627d
2020-06-09 14:38:50 -07:00
Colin Cross
2fce23ae6d Remove paths from cc.TestConfig
Now that tests don't need to specify every path passed to
PathForSource or PathForModuleSrc, remove them from cc.TestConfig.

Test: all soong tests
Change-Id: I90cd7b4dfc49c156afbb0eea9a77159c3e1860fa
2020-06-09 14:38:47 -07:00
Colin Cross
238c1f3903 Remove most paths from java.TestConfig
Now that tests don't need to specify every path passed to
PathForSource or PathForModuleSrc, remove most of them from
java.TestConfig.  Leave a few that are globbed by lots of tests,
and move a few that are globbed by a single test into the tests.

Test: all soong tests
Change-Id: Ica91d7203a6a7dbca0fd4fed84c78f149b8699e1
2020-06-09 14:38:39 -07:00
Colin Cross
5e6a797982 Allow tests to bypass PathForSource existence checks
Forcing every test to specify every file it wants to pass to
PathForSource or PathForModuleSrc is painful to maintain and
doesn't add any value.  Allow tests to reference paths through
PathForSource and PathForModuleSrc without specifying them in
the mock FS.

Test: all soong tests
Change-Id: Ia8a8fd965a338d0645b3721314bf91f50146ad21
2020-06-09 14:23:11 -07:00
Victor Khimenko
bf488e10e8 Merge "Make it possible to specify separate rules for native_bridge case" 2020-06-09 17:41:28 +00:00
Ivan Lozano
4231e344fa Merge "Specify SONAME when building Rust shared libs." 2020-06-09 15:49:34 +00:00
Pete Gillin
d7db79cc8b Merge "Split the core/platform API into stable and legacy versions." 2020-06-09 13:20:31 +00:00
Ivan Lozano
bec05ea26d Specify SONAME when building Rust shared libs.
Without specifying -soname, cc binaries are unable to locate Rust
provided shared libraries. This adds the -soname linker flag for shared
libraries.

Bug: 158490355
Test: readelf -d <cc_binary> shows the expected SONAME
Change-Id: I66852a7ce24d5ea5e426f11bc1834fb56a150628
2020-06-09 08:40:24 -04:00
Ramy Medhat
4e372f7841 Merge "Turn on metalava sandbox warning in all droiddoc metalava invocations." 2020-06-09 12:17:38 +00:00
Victor Khimenko
c26fcf4947 Make it possible to specify separate rules for native_bridge case
This change make it possible to specify separate rules for native-bridge
case and non-native-bridge case.

Bug: http://b/153609531

Test: build 4arch product

Change-Id: I60145bbb9c94318f14af3cabd9f5960fc9ee62de
2020-06-09 13:31:37 +02:00
Treehugger Robot
8b1531e7df Merge "Revert^2: "Remove implict jni.h include path"" 2020-06-09 09:55:13 +00:00
Orion Hodson
5cffce1207 Revert^2: "Remove implict jni.h include path"
Bug: 152482542
Test: m checkbuild

Change-Id: I6175d7c59734ba9b6c32457e5a9b0704d49f4106
Merged-In: I6175d7c59734ba9b6c32457e5a9b0704d49f4106
Exempt-From-Owner-Approval: approved in other branches
(cherry picked from commit e3ce0ba781)
2020-06-09 09:54:56 +00:00
Frank Feng
d90c6c42e4 Merge "Implement test config auto-gen for sh_test." 2020-06-08 21:05:31 +00:00
Pete Gillin
1f41dbff64 Split the core/platform API into stable and legacy versions.
For now, everything outside libcore still uses the legacy version.

Test: treehugger
Bug: 157640067
Change-Id: If5234e9ee533ff537926801a0af045d36b1caf01
2020-06-08 10:53:51 +01:00
Treehugger Robot
8a624337b3 Merge "Use sdkSpec to compare sdk_versions of APK/JNI" 2020-06-08 07:27:26 +00:00
Jooyung Han
652d5b31ef Use sdkSpec to compare sdk_versions of APK/JNI
"current" is converted to int differently if we use
sdkSpec.effectiveVersion for APK and android.ApiStrToNum for JNI.
For example, in REL branch, "current" is equiv to PlatformSdkVersion
for APK, but 10000(FutureApiVersion) for JNI.

Use sdkSpec.effectiveVersion to compare APK.min_sdk_version and
JNI.sdk_version.

Exempt-From-Owner-Approval: cherrypick from internal

Bug: 145796956
Test: m
Merged-In: I2c4dbb79ae8712004dc3a9e647aa53cd5de7b508
Change-Id: I2c4dbb79ae8712004dc3a9e647aa53cd5de7b508
(cherry picked from commit 9d2c0f7af2)
2020-06-08 07:19:56 +00:00
Inseob Kim
37ed5063e2 Merge changes I059e639b,I4ebe1da8,Idf4fd37a,Id90082b5
* changes:
  Do not disable llndk libraries
  Create only one vendor variant depending on path
  Implement cc_object vendor snapshot
  Refine logic choosing vendor snapshot modules
2020-06-08 03:34:24 +00:00
Treehugger Robot
575c610bba Merge "Add eakammer and patricearruda to OWNERS" 2020-06-05 23:30:31 +00:00
Alexander Smundak
99e4fba932 Merge "Fix android_app_set documentation" 2020-06-05 22:31:32 +00:00
Colin Cross
b83929c944 Add eakammer and patricearruda to OWNERS
Change-Id: I4209fc5149dcce6bf75aef130afc69c4600c7f3b
2020-06-05 20:31:40 +00:00
Anton Hansson
4f3dc39a47 Merge "Correct link type for module stubs" 2020-06-05 19:32:33 +00:00
Treehugger Robot
24fae40b8d Merge "Pass the TMPDIR directly to the command when dumping makefile variables." 2020-06-05 19:32:30 +00:00
Anton Hansson
14da93be48 Merge "Improve the structure of the link check method" 2020-06-05 18:36:58 +00:00
Anton Hansson
79fe805e05 Merge "Build java_sdk_library stubs with language level 8" 2020-06-05 18:04:56 +00:00
Patrice Arruda
ae2694b30d Pass the TMPDIR directly to the command when dumping makefile variables.
External applications such as metrics uploader depends on the TMPDIR.
DumpMakeVars is changing the TMPDIR environment variable value. Once
the work is done, TMPDIR directory is deleted. Additional flow of
the tool or external applications can panic since TMPDIR directory
does not exist. Since this is an isolated case, pass the TMPDIR
directory to the command of dumping the makefile variables.

Bug: b/140638454
Test: * Ran lunch command with ANDROID_ENABLE_METRICS_UPLOAD set
        and metrics_uploader did not crash.
      * m nothing
Change-Id: Ib78a3f8cfb5da48f65bd9bce1511e9abdf3d9cca
2020-06-05 17:28:41 +00:00
Sasha Smundak
613cbb1733 Fix android_app_set documentation
Also, fix linter warnings.

Bug: 152319766
Test: treehugger & manual
Change-Id: Id9b296d9301902deb463b299413491bc66d58944
2020-06-05 10:27:23 -07:00
Anton Hansson
5ac7fad759 Merge "Don't require merge_annotations_dir for annotations_enabled" 2020-06-05 17:21:56 +00:00
Anton Hansson
ad14580f99 Merge "Create a framework.aidl for non-updatable platform" 2020-06-05 16:38:15 +00:00
Orion Hodson
e29cac0861 Merge "Revert "Remove implict jni.h include path"" 2020-06-05 15:23:25 +00:00
Orion Hodson
465c775ab8 Revert "Remove implict jni.h include path"
This reverts commit e68926d4d3.

Reason for revert: breaks build in various -plus-aosp branches
Bug: 158293810

Change-Id: I80572f673df83161be02873b2b2acf4b2ba9a2d4
Exempt-From-Owner-Approval: revert
2020-06-05 15:17:20 +00:00
Anton Hansson
2d0c1946fa Correct link type for module stubs
Module stubs compile against module_current, so any module depending on
them had to compile against module_current (or broader) too. Treat them
as the API surface the stubs are for.

Bug: 157010342
Test: m
Change-Id: I49b9082dc1b5afe6c22e94126e574dd8061f0f39
Merged-In: I49b9082dc1b5afe6c22e94126e574dd8061f0f39
(cherry picked from commit 0bd88d0b4e)
2020-06-05 15:16:17 +01:00
Anton Hansson
cc51a6886e Improve the structure of the link check method
Match by name first, then by kind.

Bug: 157010342
Test: m
Change-Id: Ic337a073c3bd14ac03b1d899aeb612247a708495
Merged-In: Ic337a073c3bd14ac03b1d899aeb612247a708495
(cherry picked from commit ac103461a4)
2020-06-05 15:16:17 +01:00
Anton Hansson
83509b549c Build java_sdk_library stubs with language level 8
This is in line with the main android stubs (android.jar). I discovered
the difference since we want to merge some java_sdk_libraries into the
android.jar files, but I believe the rationale for compiling it with
version 8 applies to all stubs (we don't want level 9-language features
because some tooling may be stuck with version 8).

Bug: 144149403
Test: presubmit (checkbuild)
Change-Id: I9439ed516dda68ef516ff08d1c6045de3d3c1c0e
Merged-In: I9439ed516dda68ef516ff08d1c6045de3d3c1c0e
(cherry picked from commit cf4dd4c1df)
2020-06-05 15:16:16 +01:00
Anton Hansson
9d7c3fb4da Don't require merge_annotations_dir for annotations_enabled
As far as I can tell, annotations_enabled does not require use of
merge_annotations_dir (although it may have done in the past).

Bug: 157010342
Test: m
Change-Id: I6705522774203b4566f58679bbc2f0c17422c1dd
Merged-In: I6705522774203b4566f58679bbc2f0c17422c1dd
(cherry picked from commit c5e13279ad)
2020-06-05 15:16:16 +01:00
Anton Hansson
3f07ab2d63 Create a framework.aidl for non-updatable platform
framework.aidl includes the parcelables from the non-updatable
part of the framework as well as the modules. This causes a
dependency cycle when building module stubs:
module_stub -> module_sdk -> framework.aidl -> public_sdk -> module_stub

The module_sdk only includes the the stubs for the non-updatable
part of the framework, so it should also only contain the non-updatable
parcelables. This change creates a framework_non_updatable.aidl with
those parcelables, and updates module_current to use that.

Bug: 144149403
Test: m
Test: m && diff out/soong/framework{,_non_updatable}.aidl
      (the diff contains just TestApi + module parcelables)
Change-Id: I224117a0ff695c22d4a4317a51a9b775ed73066b
Merged-In: I224117a0ff695c22d4a4317a51a9b775ed73066b
(cherry picked from commit 85c151c3f3)
2020-06-05 15:16:16 +01:00
Treehugger Robot
2ebae3e936 Merge "Remove implict jni.h include path" 2020-06-05 13:26:32 +00:00
Ulyana Trafimovich
3ef493ff91 Merge "Refactor library path representation in dexpreopt." 2020-06-05 10:46:01 +00:00
Treehugger Robot
a5c94e1409 Merge "Allow apex module to have android_app_set as its constituent." 2020-06-05 05:52:51 +00:00
Inseob Kim
206665cc9b Do not disable llndk libraries
LLNDK libraries shouldn't be disabled in any case.

Bug: 157106227
Test: m
Change-Id: I059e639b21d0edb8abc00773891d37e890a36cce
Merged-In: I059e639b21d0edb8abc00773891d37e890a36cce
(cherry picked from commit 470b4cf826)
2020-06-05 04:26:29 +00:00
Inseob Kim
85708802d4 Create only one vendor variant depending on path
Not all vendor modules are meant to be working with multiple versions of
vndk unmodified. This restricts all vendor or vendor_available modules
to only one variant. Modules under proprietary directories will only
have BOARD_VNDK_VERSION variant, while modules under AOSP directories
will only have PLATFORM_VNDK_VERSION variant.

Bug: 157106227
Bug: 157133296
Test: capture snapshot from R
Test: try building master with R snapshot
Change-Id: I4ebe1da8d887cd76722fa8ab5ae9305da09074d4
Merged-In: I4ebe1da8d887cd76722fa8ab5ae9305da09074d4
(cherry picked from commit af578ffacc)
2020-06-05 04:26:24 +00:00
Inseob Kim
1042d29705 Implement cc_object vendor snapshot
cc_object modules are also necessary for vendor snapshot.

Bug: 157106227
Test: m vendor-snapshot
Change-Id: Idf4fd37a26f6f712f3cbab43133622f9f9bd9372
Merged-In: Idf4fd37a26f6f712f3cbab43133622f9f9bd9372
(cherry picked from commit 502679e061)
2020-06-05 04:26:17 +00:00
Inseob Kim
7f283f4bd0 Refine logic choosing vendor snapshot modules
This refines the vendor snapshot codes in order to fix logic errors.

- Capture toolchain_library and cc_library_headers correctly.
- Redirect unwind static library correctly.
- Filter out sanitize / coverage / lto by looking at HideFromMake.
- Add binary() function for clear and shorter codes.
- Include test modules.
- Add more tests to prevent further snapshot breakages.

Bug: 157106227
Test: m vendor-snapshot
Test: m nothing for all available targets
Test: EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true \
NATIVE_COVERAGE=true COVERAGE_PATHS="*" m nothing

Change-Id: Id90082b5ab730f928582ad24f022ba410855400e
Merged-In: Id90082b5ab730f928582ad24f022ba410855400e
(cherry picked from commit 4d8d8fec4a)
2020-06-05 04:25:40 +00:00
Sasha Smundak
18d98bc3e0 Allow apex module to have android_app_set as its constituent.
Fixes: 157166068
Test: treehugger & manual
Change-Id: I9f91f1b761286f489d175eb0772f78f702e8a2d6
2020-06-04 20:25:53 -07:00
frankfeng
c5b8749853 Implement test config auto-gen for sh_test.
Supports the following properties:
- Require_root
- Test_config_template
- Auto_gen_config

Test config template is in a separate CL.

Bug: 148805488
Bug: 151761373

Test: make
Test: unit tests
Test: verified with bc_test & toybox-tests
Change-Id: I63d60a153a6abda4ce30b74d3eb915fbf6389cb8
2020-06-04 10:37:14 -07:00
Ulya Trafimovich
d4bcea4e24 Refactor library path representation in dexpreopt.
This is a preliminary CL before fixing on-device paths to DEX jars.
It groups together the inormation about on-host build paths and
on-device install paths to library DEX jars.

This CL changes the structure of module dexpreopt.config files
generated by the build system. Aside of that, no functional changes.

Test: lunch aosp_cf_x86_phone-userdebug && m
Change-Id: I059654be7670f2ba66248d9c49b9694a0591f9c1
2020-06-04 17:37:42 +01:00
Ulyana Trafimovich
5539e7b568 Revert^2 "Rename DexJar interface method to DexJarBuildPath."
This reverts commit b0dc851ff4.

Reason for revert: relanding original change. Build failures were
  caused by a race with another CL: https://r.android.com/1320920

Test: lunch aosp_cf_x86_phone-userdebug && m
Change-Id: Ic9016582dae7773b4d4f84a63425f1ef7a5d061f
2020-06-04 17:20:38 +01:00
Ulyana Trafimovich
c55b679e7b Merge "Revert "Rename DexJar interface method to DexJarBuildPath."" 2020-06-04 10:47:47 +00:00
Orion Hodson
e68926d4d3 Remove implict jni.h include path
Bug: 152482542
Test: m checkbuild
Change-Id: I7225646a31fb87879c47f71a1a919b342c9b488f
Merged-In: I7225646a31fb87879c47f71a1a919b342c9b488f
(cherry picked from commit 90e9505f56)
2020-06-04 10:44:08 +00:00
Ulyana Trafimovich
b0dc851ff4 Revert "Rename DexJar interface method to DexJarBuildPath."
This reverts commit 562c240185.

Reason for revert: breaks `lunch full-eng && m checkbuild`.

Change-Id: Id7c7d6240d98afaf8edd49b6c96cd05534b784cc
2020-06-04 10:37:36 +00:00