Current information is not enough if the prebuilt modules are depend on
AAR libs Therefore, AIDEGen has to collect the classes.jar of the
prebuilt modules from build system.
Build module-info.json without this change:
Build time: 1m55.001s
File size: 14,918,354 Bytes
Build module-info.json with this change:
Build time: 1m56.292s
File size: 15,577,031 Bytes
Bug: 132768299
Test: 1. Checkout the internal master branch
2. Patch this CL
3. m -j out/target/product/generic_x86_64/module-info.json
4. Open the module-info.json
5. For verifying soong_java_prebuilt.mk, check the classes.jar of
module prebuilt-google-play-* exists.
e.g.
"prebuilt-google-play-...": {
...
"classes_jar": [
"out/target/common/obj/JAVA_LIBRARIES/
prebuilt-google-..._intermediates/classes.jar"
]
}
5. For verifying java_prebuilt_internal.mk, check the classes.jar
of module ink exists.
e.g.
"ink": {
...
"classes_jar": [
"out/target/common/obj/JAVA_LIBRARIES/ink_intermediates/
classes.jar"
]
}
Change-Id: I09518c92260db47d2686493fa13951f316159d13
We sometimes see build failures when building platform.zip happens
at the same time as building vendor.img if the vendor.img rule
runs rm -rf $OUT/vendor/lib/modules at the same time that platform.zip
is zipping $OUT/vendor/. Move the kernel modules into normal
installation rules so that they are in place by the time either
the vendor.img or platform.zip rules run.
This will also cause the kernel modules to show up in
installed-files*.txt.
Test: m vendorimage && ls $OUT/vendor/lib/modules
Change-Id: I178b1d54bfcdb5cf5c29885ace9183ac28fc8826
By design doc: go/aidegen-doc-generate-R
In order to generate R.java of app modules, AIDEGen needs to build
the module. It might cause system.img oversized so we turn to build
the target srcjar file if it exists in module-info.json.
Build module-info.json without this change:
Build time: 1m47.227s
File size: 14,186,429 Bytes
Build module-info.json with this change:
Build time: 1m46.796s
File size: 14,614,470 Bytes
Bug: 132407603
Test: 1. m out/target/product/generic_x86_64/module-info.json
2. by grep "target/common/obj/APPS/Settings_intermediates/aapt2.srcjar"
in module-info.json.
Change-Id: I09c812aede0324bc38acbead0a863a85ae15b33e
This is the first commit to generate VNDK snapshot with Soong: .so
files, some txt files, and notice files are captured with Soong. As
ld.config.txt is currently in Android.mk and will be deprecated soon,
configs files (and zipping all of artifacts) are still handled with
Makefile.
Bug: 131564934
Test: 1) DIST_DIR=out/dist development/vndk/snapshot/build.sh
Test: 2) try installing vndk snapshot with:
development/vndk/snapshot/update.py
Change-Id: Ia904e8a1b44824d6c9556ada93bf1616620a1363
So that we actually respect different LOCAL_REQUIRED_MODULES for the
host and device versions instead of unioning them. That got particularly
problematic when LOCAL_SHARED_LIBRARIES is implicitly added to
LOCAL_REQUIRED_MODULES. We also used to walk through device-only modules
when filling out the list of required modules, which triggered even more
extra installations.
This also changes the requirements for PRODUCT_HOST_PACKAGES so that it
no longer accepts target-only phony modules (since we can now
differentiate them). They were all removed in previous patches.
Test: treehugger; diff resulting builds
Test: diff list of product_target_FILES and product_host_FILES
Change-Id: I2ed8950320d31f5693323ad8cef6ec5b6780b7d4
This CL simplifies the PRODUCTS.$(INTERNAL_PRODUCT).X accesses of
product variables, and removes unnecessary stripping of them.
Replace: '\$\(PRODUCTS\.\$\(INTERNAL_PRODUCT\)\.([^\)]*)\)' with '$(\1)'
Replace: '\$\(strip\s*\$\(PRODUCT_([^\)]*)\)\)' with '$(PRODUCT_\1)'
A few minor manual tweaks.
Bug: 116769560
Test: presubmit
Change-Id: I70c54f1582e3cc780028535960147d99ebc2e0e1
This reverts commit 224e103308.
Reason for revert: Build Breakage in git_pi-dev-plus-aosp/docs @5366136
make -j110 docs showcommands dist DIST_DIR=/buildbot/dist_dirs/git_pi-dev-plus-aosp-linux-docs/5366136 checkbuild
FAILED:
Dependencies in out found with no rule to create them:
out/target/product/generic/data/app/CtsVerifierTester/CtsVerifierTester.apk
out/target/product/generic/data/app/TradeFedTestApp/TradeFedTestApp.apk
out/target/product/generic/data/app/TradeFedUiTestApp/TradeFedUiTestApp.apk
15:53:46 stopping
and
make -j50 showcommands dist TARGET_PRODUCT=cf_x86_phone DIST_DIR=/buildbot/dist_dirs/git_master-linux-ndk_translation_all/5366149 ndk_translation_all
FAILED: ninja: 'out/target/product/vsoc_x86/data/nativetest/arm/arm_insn_tests_arm_static/arm_insn_tests_arm_static', needed by 'out/target/product/vsoc_x86/obj/PACKAGING/ndk_translation_tests_intermediates/arm_insn_tests_arm_static_result.xml', missing and no known rule to make it
15:55:38 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1
Return Code: 2
Change-Id: Idf95ef2e06526a0a31690420c923207db627605f
1. A test can add a runtime dependent test module by just setting
LOCAL_REQUIRED_MODULES or LOCAL_TARGET_REQUIRED_MODULES. Then the dependent test
module will be copied to testcase folder.
2. Do not install to $(TARGET_OUT_DATA) for testcase
BUG: 117224272
Test: 1. (a) vi cts/tests/tests/text/Android.mk
(b) add LOCAL_REQUIRED_MODULES := CtsPrintTestCases
(c) m -j CtsTextTestCases
(d) Then, CtsPrintTestCases should also be built to testcase folder like below.
./target/product/generic_arm64/testcases/CtsPrintTestCases
Change-Id: I24ea3783486c54a05cfa9d3d0375b977afc230f8
The script makes noisy error although fallback cmd succeed.
So make the script writes error log only if both of commands fail.
Bug: 124470143
Bug: 123664116
Test: m -j out/target/product/$(get_build_var TARGET_DEVICE)/shareduid_violation_modules.json
Test: And there is no error log in stderr
Change-Id: I3d4756066ee6904826c18754969fd4190bd02e1e
This way if a BoardConfig.mk configures a specific image to exist (so it
doesn't end up as a folder on /system), but does not configure for it to
be created (like the device targets on AOSP that use a prebuilt), we
won't unnecessarily trigger the build system to build the contents.
Test: `m` before and after, comparing file lists
Test: check treehugger builds before/after
Change-Id: If0e4b958b3dfaa02771a5da70f970379635f904e
This change collects the shared libraries files used by tests in
suite, and deploy the files to testcases/lib*. The shared libraries then
can be zipped in general-tests.zip and device-tests.zip. And the host
test can be run in TradeFed host based on build artifacts.
Bug: 111486845
Test: m -j general-tests; m -j device-tests
Confirm the test can run in testcases directory:
out/host/linux-x86/testcases$ ./net_test_avrcp/x86_64/net_test_avrcp
unzip general-tests.zip, confirm net_test_avrcp can run.
Change-Id: I4f9322118aa4891226ea318cbd1bcee6ca48b050
dist-write-files will add dist targets to the sdk_addon target,
but the sdk_addon target is not declared as phony when building
with mm (ONE_SHOT_MAKEFILE set), causing:
build/make/core/main.mk:1495: error: writing to readonly directory: "sdk_addon"
Always define sdk_addon as phony even if ONE_SHOT_MAKEFILE is set.
Bug: 118144231
Test: mm
Change-Id: I99d14a98a7597ebd694c765f94b0d6f4486860dc
soong_ui now guarantees DIST_DIR is set in the environment, so remove
the default.
Use dist-for-goals instead of writing directly into DIST_DIR.
When building the system image, use DIST_DIR from the environment
instead of from make. This will eventually stop working, but this will
work for now.
Bug: 117463001
Test: m dist (check gpl_source.tgz, logs/product_copy_files_ignored.txt)
Test: m out/target/product/generic/product_copy_files_ignored.txt
Change-Id: Ice557e0a148602cb8eb154efb747d416f0d0db59
mmm has a smaller view of the world and cannot generate sdk-addon
zip files.
Bug: 116818719
Test: m checkbuild
Change-Id: I9e73c0b84a42aaaa353704d6ab245b449166606d
Also remove the msg.mk files used for old apicheck.
And export jdiff-doc.zip generated by Soong.
Test: api-stubs-docs-diff
Bug: b/78245848
Change-Id: I329aa375623a7b7a121d58314dab694a326c9f0f
- add "dependencies" and "srcs" to collect in module-info.mk.
- add "Srcs" in core/base_rules.mk
Bug: 112523202
Test: make out/target/product/generic_x86_64/module-info.json and
generate out/target/product/generic_x86_64/module-info.json
Change-Id: I0669377b2e5e6b4ee225f1930bda208eff092dea
These are used in various dist-for-goal targets even if we're not
currently building the sdks, so they always need to be marked with
.PHONY.
Test: m dist
Change-Id: I1e11ae37c6d0fd6ef8a3e293cf7409773c1bf3ab
ATest's original module_name is designed as a single string.
The different type maybe cause some problem when loading module_name
data. Due to it expected it as a list but actually it will be a single
string after mod-info obj handling this data.
Bug: 113317515
Test: atest aapt2_tests
atest hello_world_test
atest BluetoothInstrumentationTests
atest packages/apps/Bluetooth/tests/unit/Android.mk
atest RunBluetoothRoboTests
atest com.android.bluetooth
atest libcore/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
Multiple tests found:
0: libjavacore-unit-tests
1: jsr166-tests
2: core-ojtests-public
...
atest SSLSocketTest # Brings up 2 prompts, one for which file then one for which module
make -j bit
bit Settings
bit hello_world_test
bit BluetoothInstrumentationTests
bit RunBluetoothRoboTests (Could not find module, but the same situation
before applying this patch)
Change-Id: I46a14c675eabd7cebd82562954380a9a769e80b5
Use PRIVATE_general_tests_list_zip inside the rule. Also remove the
output files to make it more likely that an incremental build fails
the same was as a clean build.
Bug: 112865316
Test: rm $OUT/general-tests* && m general-tests
Change-Id: Idbca35f9ca71f65ef45ef026df41bd933fb9d37d
Some non-tests were marked with
LOCAL_COMPATIBILITY_SUITE := general-tests
in order to get them into general-tests.zip. Soong is attempting to
only allow the test_suites property on tests. Specify the tools
needed in the test suite in general-tests.mk instead, the same
way cts.mk does.
Bug: 112654980
Test: m checkbuild
Test: tradefed/general_tests_zip
Change-Id: Ied7a6b2f956b84659c3edcf4dd866a8cd936bedf