Commit Graph

168 Commits

Author SHA1 Message Date
Jeongik Cha d05b57a362 Introduce TARGET_BUILD_UNBUNDLED_IMAGE
- TARGET_BUILD_UNBUNDLED_IMAGE is similar to TARGET_BUILD_APPS, but
its targets are the unbundled partitions instead of apps.
- Rename TARGET_BUILD_APPS_USE_PREBUILT_SDK to TARGET_BUILD_USE_PREBUILT_SDKS
because it is used even without TARGET_BUILD_APPS.
-Instead of TARGET_BUILD_APPS, use TARGET_BUILD_USE_PREBUILT_SDKS
to build java modules with prebuilt sdks, and propagate to Soong.

Bug: 160390776
Test: TARGET_BUILD_UNBUNDLED_IMAGE=true m vendorimage
Change-Id: Ie096212ccbcca0018baae55e106af693b002c9e5
2020-08-03 15:47:09 +09:00
Joel Galenson 154ac1d870 Update language to meet Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference.

Bug: 161896447
Test: Build
Change-Id: I8d33207c84f424e89f367b1c917661347402ae77
2020-07-30 15:05:55 -07:00
Joe Onorato 8157070b37 LOCAL_JNI_SHARED_LIBRARIES is no longer bad, so remove from my_soong_problems
Test: m out/target/product/$(get_build_var TARGET_DEVICE)/mk2bp_remaining.html out/target/product/$(get_build_var TARGET_DEVICE)/soong_to_convert.txt
Change-Id: Iacfe74ae5a7f4f0607c8cac718e0487c30d20cae
2020-07-16 18:21:59 -07:00
Joe Onorato 02fb89a4d7 Add mk2bp_catalog.py that outputs more data about makefiles to be converted to soong.
- Adds makefile and which files are installed to the SOONG_CONV CSV file
- Updates soong_to_convert.py to be able to parse that
- Adds new script that is more detailed.
- Outputs that file as part of the droidcore build to
  $(OUT_DIR)/target/product/$(TARGET_DEVICE)/mk2bp_remaining.html

Test: m out/target/product/$(get_build_var TARGET_DEVICE)/mk2bp_remaining.html
Change-Id: I7c380b6070754f4329bf3965595751e4dac794a0
2020-07-16 18:19:15 -07:00
Pete Gillin 3829475b74 Rename the Default* constants in java/config.
These values are used in two out of the many possible sdk_version
configurations, and therefore weren't really defaults in any
meaningful sense. Giving them more descriptive names makes the code
easier to follow.

Bug: 157640067
Test: m java
Change-Id: I67767b2be72ed3d8cc879280036850096eb65415
2020-07-01 12:47:02 +01:00
Bill Peckham a2c63454a6 Allow recording ALL_DEPS by setting RECORD_ALL_DEPS
This change enables recording ALL_DEPS information
without having to specify the deps-license goal, which
can be useful to populate the dependencies field of
module-info.json for various types of post-processing.

Usage: `RECORD_ALL_DEPS=true make droid` (preferred), or
`make RECORD_ALL_DEPS=true droid`.

Test: make, inspect module-info.json
Test: RECORD_ALL_DEPS=true make, inspect module-info.json
Bug: 151755703
Change-Id: Ib81a8dfb0ecbe0b63be320a9d33e558b419cb4b2
2020-04-27 18:28:10 +00:00
Pete Gillin 6a88bd49bc Remove support for EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9.
Prior to this change, setting that to "false" turned the default Java
language level back to 8. This change removes that option.

Also remove the unused make variable USE_OPENJDK9.

Bug: 115604102
Test: m java droid docs tests cts
Change-Id: I040cf83a2457227ffbcd1c62649e33b98c0c66f7
2019-10-25 16:55:54 +01:00
Colin Cross 521d4454fa Make javanano a plugin
Treat LOCAL_PROTOC_OPTIMIZE_TYPE := javanano as a plugin by
explicitly passing the path to protoc-gen-javanano.  This allows
removing the javanano customizations from the core plugin code,
which no longer supports javanano natively.

Bug: 117607748
Test: m checkbuild
Change-Id: I913d798136fbee9bfaabe1d815b80c85025cb9b9
Merged-In: I913d798136fbee9bfaabe1d815b80c85025cb9b9
2019-09-05 14:42:14 -07:00
Colin Cross 869febddb9 Make javamicro a plugin
Treat LOCAL_PROTOC_OPTIMIZE_TYPE := javamicro as a plugin by
explicitly passing the path to protoc-gen-javamicro.  This allows
removing the javamicro customizations from the core plugin code.

Bug: 117607748
Test: m checkbuild
Change-Id: I199f47a64a454594a2fff4c5580c53fd17e0bdee
2019-08-13 16:58:45 -07:00
Dan Willemsen 5c3fc2a792 Remove support for ONE_SHOT_MAKEFILE
Test: treehugger
Change-Id: Ie73418c186ec4c0e1c91078c133de8f8113295bf
2019-07-31 18:08:47 -07:00
Dan Willemsen 70b934ee64 Depend on all the files from system modules
Test: treehugger
Change-Id: Ie84dda3d05a84658ad9386a3034d861138f25b2c
2019-06-18 01:19:04 +00:00
Dan Willemsen 84c6c1cfe4 Convert java proto generation to use srcjars
So that we actually represent all files in the build graph.

Test: treehugger
Change-Id: I48e32437fcfd8c0de8cbc87d07934393db557aa4
2019-06-10 16:31:07 -07:00
Colin Cross e6210f6eb2 Remove AAPT1 support
AAPT2 is used everywhere now, remove support for AAPT1.  Also
removes dpi_specific_apk.mk, it was never updated to use AAPT2
and has been generating bad APKs (resource ID mismatch between
the dex files and the resources) since AAPT2 was made the default
in May 2018 (I9b67fd2a9b3234798b2aac879b5242c2097b3863).

Bug: 80450981
Test: m checkbuild
Change-Id: I2ff768897360ff866dbae5562455bab22be270f7
Merged-In: I2ff768897360ff866dbae5562455bab22be270f7
2019-04-17 16:50:30 -07:00
bralee 090336232e Build System: Add java lib header files to module dependency list im module-info.mk
To solve AIDEGen issue: DocumentsUI have no dependency libcore.

Bug: 122557164
Test: 1. m  `build/soong/soong_ui.bash --dumpvar-mode PRODUCT_OUT`/module-info.json
      2. open $ANDROID_PRODUCT_OUT/module-info.json
         "out/target/common/obj/JAVA_LIBRARIES/core-lambda-stubs_intermediates/classes-header.jar",
         "out/target/common/obj/JAVA_LIBRARIES/core.platform.api.stubs_intermediates/classes-header.jar",
	 "out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes-header.jar",
	 "out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-header.jar"
	 will be added to DocumentsUI's dependencies.

Change-Id: I6b20c315f3367ff2a016d305ec6fe2a8de620a14
2019-01-24 09:27:48 +08:00
Sundong Ahn a9f2ef5ed1 Change the impl lib name of java_sdk_library
The impl lib name of java_sdk_library is changed to {module_name}.jar
instead of {module_name}.impl.jar

Bug: 110404779
Test: m -j
Change-Id: I275cd40e3682640b96425e56698cea770888cbb1
Merged-In: I275cd40e3682640b96425e56698cea770888cbb1
(cherry picked from commit 0372f189ac)
2019-01-17 09:42:57 +09:00
Colin Cross 8e0ff1c370 Add a flag to allow unbundled builds to build SDKs from source
Mainline modules are tightly coupled to the platform, and should
build against the current SDK from source and not prebuilts. Add
a flag UNBUNDLED_BUILD_SDKS_FROM_SOURCE to specify that a
TARGET_BUILD_APPS build should build the current SDK instead of
using the prebuilts.

Bug: 121194841
Bug: 121231426
Test: no change to out/build-aosp_sailfish.ninja
Test: forrest unbundled build
Test: forrest master apps build
Test: forrest mainline modules build
Change-Id: I9ebc08745409a817d831817cb282aba1de6d81bb
2018-12-18 22:43:16 -08:00
Jaewoong Jung e8cb1954bb Add -CROSS suffix to cross host OS notice targets.
This fixes a bug where cross host OS notice dependecies were incorrectly
added and caused missing file errors.

Bug: 36073965
Test: Manual build + inspection
Change-Id: I3983ad6158acf939842f836fe3f44cecf9187087
2018-11-08 16:53:02 -08:00
Colin Cross e4f4c73c6a Revert "Use protoc-gen-javalite for java lite protos"
This reverts commit 84f0a11205.

Change-Id: I0d0d750deefb308eb63c99e517ae1a8622376fac
2018-11-04 17:23:32 -08:00
Colin Cross 84f0a11205 Use protoc-gen-javalite for java lite protos
Protobuf 3.5.2 does not natively support lite protos, instead they
are generated by the protoc-gen-javalite plugin compiled from
external/protobuf-javalite.

Bug: 117607748
Test: m checkbuild
Change-Id: I166d55111435762f099503db83c1a658f78e98e9
2018-10-26 23:57:26 -07:00
Dan Willemsen 5771e8cbf1 Switch protoc javastream plugin to using explicit path
The previous PATH=$PATH:out/... logic was incorrect, since the version
in $PATH would override the one out. And now that we're limiting what's
accessible via $PATH, that caused an error.

Instead, ensure that all protoc plugins are specified explicitly with
--plugin, then remove the PATH modification.

Test: cd frameworks/base/cmds/am; mma    (with protoc-gen-javastream in $PATH)
Change-Id: I6690727504f67f84fdc95ed93eabdf3351e5cb0b
2018-08-31 15:59:23 -07:00
Colin Cross dcc8ec310f Add jni shared libraries to java soong_to_convert problems
Soong doesn't support LOCAL_JNI_SHARED_LIBRARIES yet, add it to the
problems list.

Bug: 80095087
Test: examine soong_to_convert.txt
Change-Id: I44f7a486b1e9de276416f74a4cb2b7f4eafce4ef
2018-08-16 22:58:14 -07:00
Colin Cross 579668b122 Track more static dependencies for notice files
Track transitive static dependencies of native binaries, and
and direct and transitive static dependencies of java and app
modules.

Bug: 112331930
Test: m checkbuild
Change-Id: I0e19971033d6254bfbb6555f0e68fd5e529569c6
2018-08-14 15:39:32 -07:00
Colin Cross 2e51d73d2b Merge "Run ErrorProne in OpenJDK9"
am: 264bc07791

Change-Id: I3ce7202cdcfd3e86fbccb359f56ca59581855a04
2018-06-21 13:57:20 -07:00
Colin Cross e46727a2ba Run ErrorProne in OpenJDK9
Run ErrorProne as a processor in javac from OpenJDK9.

Bug: 69485063
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: I2dde597430b47c440df22d248809233a6ade1625
2018-06-20 18:49:50 -07:00
Jiyong Park 56be041198 Merge "Export SDK library names"
am: dabf1a0c5a

Change-Id: Iad2365d9bb02de297dd06cd2bc36c288a043dfc2
2018-06-20 01:14:56 -07:00
Jiyong Park 1cf8ee619b Export SDK library names
A java module exports SDK library names that it is using directly or
indirectly via its dependencies. Manifest fixer uses the SDK lib names
to automatically add <uses-library> tags for the apk.

The SDK library names are exported via exported-sdk-libs file in make.
From Soong, they are exported via LOCAL_EXPORT_SDK_LIBRARIES flag.

Bug: 77575606
Test: m -j

Change-Id: I4e7a9bdc5bf845af85168abf55f8063900bacc72
2018-06-20 11:50:06 +09:00
Sundong Ahn 3d64287af0 Merge "Add support when LOCAL_PRIVATE_PLATFORM_APIS is true." am: 24fff76404
am: 211d44d298

Change-Id: I5f8414b5ba6e66c13daae5f64459a83e4b8e3158
2018-05-27 19:46:33 -07:00
Sundong Ahn 2b17041789 Add support when LOCAL_PRIVATE_PLATFORM_APIS is true.
LOCAL_PRIVATE_PLATFORM_APIS := ture means that the apps or packages can
use the private API. So, if LOCAL_PRIVATE_PLATFORM_APIS := true, they
are linked to ".impl" instead of ".stub".

Bug: 77577799
Test: build
Change-Id: I782e52078bb8c4139c3a24862cb381f6a84e53fe
2018-05-23 21:34:18 +09:00
Jiyong Park 025994b3c0 Merge "When building unbundled apps, link to the prebuilt stubs lib" am: 7207e41ddd
am: 86091aab1d

Change-Id: Ic760e8cf22834a026d8ed98c037361533c2bb9e1
2018-05-15 20:45:38 -07:00
Jiyong Park 45bb10c470 When building unbundled apps, link to the prebuilt stubs lib
There was a bug that when an unbundled app is built without SDK
(LOCAL_SDK_VERSION isn't set), it is linked to the nonexisting stubs
library from java_sdk_library. The built stubs libs are not created for
unbundled builds. For unbundled builds, we need to use the prebuilt
stubs lib.

Bug: 77575606
Test: m -j
Test: make -j dist
ANDROID_BUILDSPEC=vendor/google/build/app_build_spec.mk

Change-Id: I70cced1c872053e151fea157e3a6d218b1fab9dc
2018-05-16 09:55:47 +09:00
Colin Cross 92e9d334ae Merge "Allow forcing AAPT2 on" am: 2b42ae8076
am: 7795002bcf

Change-Id: Ic2b3c8841f56f7f4315ba261d53fcbc5594535cc
2018-05-14 18:12:03 -07:00
Colin Cross 2029903b64 Allow forcing AAPT2 on
Building with FORCE_AAPT2=true will turn on AAPT2 for all modules
unless they set LOCAL_USE_AAPT2 := false.  The build system will
attempt to rewrite common AAPT patterns into AAPT2 patterns,
including removing --extra-packages for support library packages,
removing LOCAL_RESOURCE_DIR point to support library resources,
adding a default empty manifest file if it doesn't exist, and
converting LOCAL_STATIC_JAVA_AAR_LIBRARIES to
LOCAL_STATIC_ANDROID_LIBRARIES.

Bug: 79481102
Test: m checkbuild
Change-Id: I8d9d55fe4d5d5c965c64b0407efe74e0afc35c3a
2018-05-11 02:23:20 +00:00
Anton Hansson d17f99a6b3 Merge "Forbid depending directly on SDK modules." am: efd6084996
am: 20da4aa253

Change-Id: Ied594aa68e605a448c06193071edf4dca2fcaa93
2018-05-02 07:21:21 -07:00
Anton Hansson 9d030609e5 Forbid depending directly on SDK modules.
They should be depended on by specifying LOCAL_SDK_VERSION. Depending
on them directly makes it difficult to rename or modify these targets,
as I've found when working on b/77525052.

This list can be further extended to other libraries that should not
be depended on directly.

Bug: b/77525052
Test: make
Change-Id: I911bcc8a5a90995b3607599388dc6119eb88ea96
2018-05-02 15:02:09 +01:00
android-build-prod (mdb) f503b22f29 Merge changes from topic "java_sdk_library" am: e8c3dfd945
am: 8303590165

Change-Id: I6ee23bf7c8e8d0a8fb6d0264cb79900071c1ae7d
2018-04-30 18:21:37 -07:00
Jiyong Park cd06fe34e0 sdk lib name can be in LOCAL_[STATIC_]JAVA_LIBRARIES
When an sdk lib name (a module defined with java_sdk_library{...}) is
listed in LOCAL_JAVA_LIBRARIES or LOCAL_STATIC_JAVA_LIBRARIES, the name
is translated to the stubs lib name of the sdk lib.

We have to support this at least until all existing references to sdk
libs are all correctly converted to LOCAL_SDK_LIBRARIES.

Bug: 77575606
Test: m -j
Change-Id: I8cff668afd6b5f265cc7ae6fe6f5fa36b76b8334
2018-05-01 09:32:11 +09:00
Jiyong Park 6023db8844 java_sdk_library supports test as another API scope
When a module built with LOCAL_SDK_VERSION := test_current, then
it is linked against test variant of the sdk stubs library.

Bug: 77575606
Test: m -j
Change-Id: I08ce120d8e4774722a95bfc4e200ad7d123abc70
2018-05-01 09:32:01 +09:00
Anton Hansson 8ae30017e9 Support LOCAL_SDK_LIBRARIES for "current" builds.
Resolve these using the naming scheme from sdk_library.go, added
in I4a4ccf6e730e041703c63bb275d8860d0de96887.

Also re-write the LOCAL_SDK_VERSION logic, as it was becoming a
real mess.

Bug: 77575476
Test: With uiautomator in a follow-on CL
Change-Id: I11bd10c02df3d458a4ed6de90114e27fabe8d9e0
2018-04-30 23:06:57 +01:00
Anton Hansson 789c8cd5ef Merge "Add support for specifying LOCAL_SDK_LIBRARIES for prebuilts." am: 4ad0be36e3
am: 480e125b58

Change-Id: Id3b9bbf428650fba96aca05503738ec5e307005f
2018-04-20 01:31:24 -07:00
Anton Hansson f5cefdcefb Add support for specifying LOCAL_SDK_LIBRARIES for prebuilts.
This new variable allows specifying libraries like this:
LOCAL_SDK_VERISON := 25
LOCAL_SDK_LIBRARIES := org.apache.http.legacy,
which would automatically pick up the prebuilt OAHL prebuilt
from prebuilts/sdk/25/public/org.apache.http.legacy.jar

Test: In master with uiautomator.
Bug: 77575476
Change-Id: Id8d92176f5b608c2bcea622b6aed4aa27c32e000
2018-04-19 15:18:55 +01:00
Anton Hansson 395092db03 Merge "Consolidate the logic for the sdk prebuilt module names." am: 9b72b53a24
am: 762e03ad41

Change-Id: I79ba2766028f2f26836a3a6d99eb5e8311f31921
2018-04-11 02:27:37 -07:00
Anton Hansson 400673cf1e Consolidate the logic for the sdk prebuilt module names.
I'm making some changes to it, and found the names are scattered
in various places. Make a macro and re-use the logic instead.

Bug: 77525052
Test: make droid
Change-Id: I0f2da80b8b4d427353509b27ec720d024eee7a6e
2018-04-10 18:53:30 +01:00
Colin Cross b4ee77aefb Move java renderscript support to java_renderscript.mk
Move java renderscript support to java_renderscript.mk in
preparation to moving it before aapt.  Filter *.rs files
out of LOCAL_SRC_FILES and forbid them in java_common.mk
so that using *.rs files is an error if java_renderscript.mk
was not included.

Bug: 73885582
Test: m checkbuild
Change-Id: Ib37ce89daee58b025dec98f733c5a08149641afd
Merged-In: Ib37ce89daee58b025dec98f733c5a08149641afd
(cherry picked from commit 71822d6fb9)
2018-03-20 15:47:45 -07:00
Colin Cross f13eb55448 Add LOCAL_SRCJARS support
Allow java modules to take jars containing .java files as an input.
For turbine, pass them directly to turbine.  For javac, extract them
to a directory and pass a list of the files to javac.

Bug: 73885582
Test: m checkbuild
Change-Id: Ib4351a5b4b165a55e5fb02ee2680466db368983a
Merged-In: Ib4351a5b4b165a55e5fb02ee2680466db368983a
(cherry picked from commit 11e2d55c0f)
2018-03-20 15:47:45 -07:00
Colin Cross ecabf53bee Remove unused .fs file suppport
.fs files are obsolete.

Bug: 73885582
Test: m checkbuild
Change-Id: I74b618099333fe565c7b235994be64e6466d2da6
Merged-In: I74b618099333fe565c7b235994be64e6466d2da6
(cherry picked from commit 93d6550c53)
2018-03-20 15:47:45 -07:00
Colin Cross e793ae62f5 Remove unused file lists
RS_FILES and AIDL_FILES were used for cleaning up the intermediate
src dir, but are no longer used after
If7529979de6fa62a651933a3a974f47b033851d6 and
I01feff7cc399ac5b88b83333a1ac86928d0a81e6.

Bug: 73885582
Test: m checkbuild
Change-Id: If2653f846b568fd2587c8e055ef820e17760f133
Merged-In: If2653f846b568fd2587c8e055ef820e17760f133
(cherry picked from commit c3e7074df1)
2018-03-20 15:47:45 -07:00
Colin Cross f70aa4cde7 Move aapt flags from java_common.mk to aapt_flags.mk
The aapt flags were being set in java_common.mk, which is used by
various entry points.  host_dalvik_java_library.mk and
host_java_library.mk, and java_library.mk don't support aapt, only
package_internal.mk and static_java_library.mk do.  Move the aapt
flags into aapt_flags.mk, and include it from package_internal.mk
and static_java_library.mk.

Bug: 73885582
Test: no change to build-${TARGET_PRODUCT}.ninja
Change-Id: I124393846d37b9bbc941272cce4274121ac235ef
Merged-In: I124393846d37b9bbc941272cce4274121ac235ef
(cherry picked from commit b6013af085)
2018-03-20 15:47:45 -07:00
Colin Cross 55dcf71d43 Remove missed PRODUCT_AAPT_FLAGS
PRODUCT_AAPT_FLAGS was removed by Iacc914114616b5bd19d9a1011802f4f9bca9bc19,
remove one more that it missed.

Bug: 73885582
Test: m checkbuild
Change-Id: I31ea4954f5af5af37f13210925ed5d622625d71b
Merged-In: I31ea4954f5af5af37f13210925ed5d622625d71b
(cherry picked from commit 8dad6c62d4)
2018-03-20 15:47:45 -07:00
Colin Cross 1e047d39a5 Move java renderscript support to java_renderscript.mk
Move java renderscript support to java_renderscript.mk in
preparation to moving it before aapt.  Filter *.rs files
out of LOCAL_SRC_FILES and forbid them in java_common.mk
so that using *.rs files is an error if java_renderscript.mk
was not included.

Bug: 73885582
Test: m checkbuild
Change-Id: Ib37ce89daee58b025dec98f733c5a08149641afd
Merged-In: Ib37ce89daee58b025dec98f733c5a08149641afd
(cherry picked from commit 71822d6fb9)
2018-03-20 15:26:27 -07:00
Colin Cross 11e2d55c0f Add LOCAL_SRCJARS support
Allow java modules to take jars containing .java files as an input.
For turbine, pass them directly to turbine.  For javac, extract them
to a directory and pass a list of the files to javac.

Bug: 73885582
Test: m checkbuild
Change-Id: Ib4351a5b4b165a55e5fb02ee2680466db368983a
2018-03-14 12:05:04 -07:00