Commit Graph

176 Commits

Author SHA1 Message Date
Liz Kammer 0449a6337e Add relative_install_path property to prebuilt_etc
This supports a more consistent property across modules for specifying a
subdirectory to install a file into for prebuilt_etc modules.

Updates bpfix to rewrite `sub_dir` to `relative_install_path`.

Test: gotest prebuilt_etc_test
Test: gotest bpfix_test
Bug: 156568187
Change-Id: Idd05cd2178c46e290764a3b708faa8275818ca1e
2020-06-29 10:54:03 -07:00
Liz Kammer 5e4070cb6b Add androidmk error for multiple assignments
Identify variables that are cleared or reassigned, add an error and
prevent reassignment which caused a parser error.

Test: go test androidmk_test
Bug: 112653593
Change-Id: I0db3372b60812ff4cdaebb38a56ed0af0dbdb27e
2020-06-24 10:33:59 -07:00
Liz Kammer 9946f0308f Rename variables with "-" in androidmk
Make variables containg a "-" would succeed the translation to
blueprint, only to fail during the blueprint format step. Rename those
variables with a "-" and update references to them.

Test: androidmk_test.go
Bug: 112653593
Change-Id: Ifcbe1c6749a1e7f1e0b78cd6f01a8f1f52a334d0
2020-06-17 17:20:53 -07:00
Chris Parsons 26cdf135ff When bpfix fails in androidmk, output the tree anyway
This can help with debugging cases where the resulting blueprint file is
invalid.

Test: Manual run of androidmk
Change-Id: I39605afa851aa6cdd8b49cc56386a8fc7347115c
2020-06-09 16:01:51 -04:00
Liz Kammer 6e85e4c2bc Support preprocessed prebuilt tests in androidmk
Adds support to translate app prebuilt tests to android_test_import and
LOCAL_REPLACE_PREBUILT_APK_INSTALLED to preprocessed property.

Test: androidmk_test.go, bpfix_test.go
Bug: 155412211
Change-Id: I77c07c684125adf228ba91911998823a68b3a65d
2020-05-26 09:12:42 -07:00
Liz Kammer 74151f2c8c Add androidmk support for runtime_resource_overlay
Test: androidmk_test.go
Bug: 148673525
Change-Id: I25c277c52b91e9308e15d92364b5504a8f556c9f
2020-05-07 14:40:57 -07:00
Elliott Hughes da3a071eaa Remove unused mips workarounds.
This was never really finished, and hasn't been supported for years.

Test: treehugger
Change-Id: I21d4c3112aa8cf0c56e59f0cc19ff8725ef714b9
2020-03-06 18:15:44 -08:00
Sasha Smundak 6a9f5cfa1e Emit error if expression cannot be evaluated to boolean during androidmk conversion
Fixes: 127517965
Test: run androidmk /sdx/asmundak/repos/iandr/vendor/google_paintbox/amber/camera/tests/Android.mk
Change-Id: If7b6bcb88bb8f25d3f421a847750a82b1e50833e
2020-02-28 09:18:08 -08:00
Colin Cross 988414c2cf Sandbox soong_build by changing to root directory
This relands I12a0f907753fefd1997ab8b4ea2ac331234093cf along with
a fix to blueprint for absolute paths.

Store the current working directory and then change to the root
directory so that all file accesses must go through helpers in
the android package that properly track dependencies.

Change-Id: I24ac485677aa102eec1a2521d16820da6ee1ae77
Fixes: 146437378
Test: m checkbuild
Test: m OUT_DIR=/tmp/out nothing
2020-01-11 01:11:46 +00:00
Colin Cross 47e4f9e1e8 Revert "Sandbox soong_build by changing to root directory"
This reverts commit 05c25ccb4a.

Reason for revert: broke absolute OUT_DIR
Bug: 146437378

Change-Id: I523ed79d40e1c1ef040212ba794a7a084abea75d
2020-01-10 18:51:04 +00:00
Colin Cross 05c25ccb4a Sandbox soong_build by changing to root directory
Store the current working directory and then change to the root
directory so that all file accesses must go through helpers in
the android package that properly track dependencies.

Fixes: 146437378
Test: m checkbuild
Change-Id: I12a0f907753fefd1997ab8b4ea2ac331234093cf
2020-01-09 14:19:46 -08:00
Colin Cross ce23942f3c Move partner androidmk and bpfix files to match their package path
Using a gomod-aware editor with build/soong requires that files
in build/soong can be mapped to the android/soong package path.
Move the partner androidmk and bpfix files such that their path
matches the package path when the android/soong package prefix is
replaced with the build/soong path prefix.

Test: go test ./...
Test: m bpfix androidmk partner_bpfix partner_androidmk
Change-Id: Ic7f7aad9e5eb9178eef0383f0b37e4fb93ce8314
2019-11-11 15:44:09 -08:00
Sasha Smundak 541056c3fa Add dont_merge_manifests attribute to android_test
Bug: 122332514
Test: treehugger, convert cts/tests/tests/content
Change-Id: Ib66fcafd7c31913402cd390dfecce292b1817729
2019-10-28 15:55:58 -07:00
Justin DeMartino ac38d7e521 Add support to extend commands bpfix and androidmk
Allows our partners to maintain partner-specific fixes in their repos. Converts most of androidmk into a library similar to bpfix. Makes some methods and types public for use by extended versions.

Bug:140727544
Test: Ran unit test cases &&
  ran test conversions with sample
Change-Id: I7e1fbf3a6a7a8bd47334f43fe3eb68cbbd3426c1
2019-10-25 16:18:15 +00:00
changho.shin b5432b7a3d Add 'Additional_manifest' property to merge other manifests
This is equivalent to 'LOCAL_FULL_LIBS_MANIFEST_FILES' in Make.

Fixes: 123374442
Test: m -j
Change-Id: Ic4b40a08f2454687c74949020598651acea3b2dd
2019-08-13 08:30:00 +00:00
Justin Yun d5f6c8261a Rename product_services to system_ext
Bug: 134359158
Test: build and check if system_ext.img is created
Change-Id: Ice3229baf97a94c24a6eea22e7d4571941d7f843
2019-07-09 08:57:05 +00:00
Paul Duffin a3d0986cfc Remove the no_standard_libs property
Corrects an error message that refers to no_standard_libs.

Removes any tests that use no_standard_libs:true where possible as
there are duplicate tests for sdk_version:"none". Otherwise, switches
them over to use sdk_version:"none".

The androidmk mapping from LOCAL_NO_STANDARD_LIBRARIES to
no_standard_libs has also been removed. There was little point in
updating the tool to map it through to sdk_version:"none" as there are
only a couple of places where it is used, in art's test running mk
targets and in some unbundled packages to work around some limitation
in .mk based build.

Bug: 134566750
Test: m droid
Change-Id: I6413c9b1fe3e63b93753a6a017d2981e32b7e013
2019-06-17 11:21:39 +01:00
Treehugger Robot b6fd6f75f2 Merge "Clean up sortedKeys function" 2019-06-10 19:16:14 +00:00
Inseob Kim 1a365c6a7f Clean up sortedKeys function
This introduces a generic function SortedStringKeys which can be used to
get a slice of sorted string keys for all kinds of maps having string
keys.

Bug: N/A
Test: m
Change-Id: I542194c68984d909b7ad1dbf060d4d3a98f0ef23
2019-06-08 16:10:38 +09:00
Patrice Arruda 1ef3bb5d51 Soong: Add mk2bp conversion for prebuilt_firmare.
There are a couple of makefiles that have etc with $(TARGET_OUT)/etc/firmware,
$(TARGET_OUT_VENDOR)/firmare as the local module path. Added the conversion in
androidmk for target.

Bug: b/133711895
Test: Unit test cases.
Change-Id: I74aca18a7eb8aa4dd692cde680fa4e112edcf6d1
2019-06-04 17:10:48 -07:00
Mitch Phillips bfeade6424 Fix fuzzer builds [#2].
- Updates the fuzzer builds to use SANITIZE_TARGET='fuzzer' instead of
'coverage'.
- Removed an old dependency that made fuzzer builds without ASan
an error.
- Fixed up the build flags to allow fuzzers to be built. Previously, the
coverage flags were manually provided. As the toolchain has moved on,
these flags are no longer compatible with libFuzzer, and so I've updated
them to use the correct, compatible flags.
- Added a dependency mutator for fuzzer coverage.

Bug: 121042685
Test: With all patches in the bug merged, build a fuzzer using
'SANITIZE_TARGET=fuzzer mmma <your_fuzzer>'.

Change-Id: Ib6246980f77bc4babe587b1e88038aa12228fa83
Merged-In: Ib6246980f77bc4babe587b1e88038aa12228fa83
2019-05-30 16:49:42 +00:00
Treehugger Robot 13feeb7b62 Merge "Convert LOCAL_COMPATIBILITY_SUPPORT_FILES to data: attribute in androidmk" 2019-05-24 16:25:48 +00:00
Jaewoong Jung a725681ed8 Merge "androidmk conversion logic for android_app_import" 2019-05-23 20:55:57 +00:00
Sasha Smundak 0d11feb42f Convert LOCAL_COMPATIBILITY_SUPPORT_FILES to data: attribute in androidmk
Fixes: 133434805
Test: build executes internal tests
Change-Id: I688672cec640f0113dc06a19a87c097cda60d180
2019-05-23 13:02:06 -07:00
Patrice Arruda d1f45c8967 Soong: Add mk2bp conversion for prebuilt_font.
There are a couple of makefiles that have etc with $(TARGET_OUT)/fonts
and $(TARGET_OUT_PRODUCT)/fonts  as the local module path. Added the
conversion in androidmk for target.

bug: b/123403785
Test: Wrote and ran unit test cases, did a test conversion on
        * platform/external/google-fonts/dancing-script/Android.mk
        * internal/external/google-fonts/arbutus-fonts/Android.mk
Change-Id: Id67e10f80b32b27c5027cd274a7944801dad0880
2019-05-16 10:48:32 -07:00
Jaewoong Jung e07b0b60e5 androidmk conversion logic for android_app_import
Test: androidmk_test.go, bpfix_test.go
Bug: 128610294
Change-Id: Ide183ba1e696fa0ffb4245e3288ffc47535b39af
2019-05-15 12:33:11 -07:00
Patrice Arruda 77311df787 Soong: Add mk2bp conversion for prebuilt_usr_share.
There are a couple of makefiles that have etc with $(TARGET_OUT)/usr/share
as the local module path. Added the conversion in androidmk for target
and host.

Bug: b/132123818
Test: Wrote and ran unit test cases, did a test conversion on
      external/neven/Android.mk makefile.

Change-Id: Iafed89f4cee499f561a1235f8870b1f1329e99bc
2019-05-10 12:59:37 -07:00
Dan Willemsen 4e0aa23dd3 Convert yacc to a single RuleBuilder rule
So that <module>/gen/yacc/... is (re)created by a single rule, previous
files are removed, and location.hh is in the build graph when it is
produced.

Test: treehugger
Change-Id: I2f6e47ea07f315e10ae1cb8ad50697e7123d0285
2019-04-15 14:52:05 -07:00
Sasha Smundak 9223a6262a Handle LOCAL_JAVA_RESOURCE_FILES variable
Fixes: 130040716
Test: treehugger, internal unit test
Change-Id: I3fcc5e041d6e4eaa5d2d4ab75f9a645e724fab1b
2019-04-05 13:53:39 -07:00
Sasha Smundak b6d230515e Implement `host_required` and `target_required` properties.
They are counterparts of LOCAL_HOST_REQUIRED_MODULES and
LOCAL_TARGET_REQUIRED_MODULES respectively.

Fixes: 128693436
Test: treehugger, convert cts/hostsidetests/devicepolicy/Android.bp
Change-Id: Id66ffca6edffe18993ac51e8930f1d0e78178249
2019-04-04 11:24:01 -07: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
Ng Zhi An 2935b409fc Rename test description
Bug: 127712304
Test: m androidmk
Change-Id: I1ffb07c2bce0c3890d8e8d8a5661ba351bcadd68
2019-03-19 12:50:13 -07:00
Ng Zhi An e02e41a9ea Skip obsolete JACK flags
Fixes: 127712304
Test: m androidmk
Change-Id: Ia2f0ccd184151c691563779d1828c111800ed382
2019-03-15 15:03:49 -07:00
Sasha Smundak 177a1a589d Fix crash in mergeListProperties
The value of a property to be merged may be a reference to a variable.
When we first create an attribute for a makefile variable (e.g. we
create 'android_static_libs' from LOCAL_STATIC_ANDROID_LIBRARIES), we
set its type correctly. However, reparse in bpfix erases this
information, so by the time 'android_static_libs' attribute is to be
merged with 'static_libs', it has no type and merge occurs. It isn't
easy to fix properly, so just don't merge in such case, Soong will
complain and it will be fixed manually.

Fixes: 125519127
Test: unit tests in androidmk_test.go
Change-Id: Ic66d7ab686a2fdde987f32e2b204c72d9bf0d026
2019-03-11 10:11:17 -07:00
Sasha Smundak e10952b442 Do not "escape" newline if comment ends with ESC character.
Fixes: 127521510
Test: manual
Change-Id: I88a8eb2ca94b8aa06e2682d2c14f9e74f5ada286
2019-03-06 16:46:23 -08:00
Jaewoong Jung b8ba8a5ee8 Fixe typos in androidmk.
Replace contitional with conditional.

Test: androidmk_test.go
Change-Id: Ic261701f4588b9b8b6d3560598831368c3422508
2019-03-05 22:29:58 +00:00
Sasha Smundak aa7fdad7f3 Revert $(LOCAL_PATH) handling for `certificate` and
`additional_certificates` properties.

Bug: 122728056
Test: builtin tests
Change-Id: I96f84bf7396447b0207438a4073c864f2d9b1ab7
2019-03-01 11:11:10 -08:00
Sasha Smundak 1d318cbaa9 Handle $(LOCAL_PATH) in androidmk
The variables LOCAL_ADDITIONAL_CERTIFICATES. LOCAL_ASSET_DIR,
LOCAL_CERTIFICATE, LOCAL_JARJAR_RULES, LOCAL_PROGUARD_FLAG_FILES,
LOCAL_RESOURCE_DIR specify the paths relative to the top of the
source tree using $(LOCAL_PATH)/. Remove it when converting to
blueprint files and diagnose the cases when these paths do not start
with $(LOCAL_PATH).

Fixes: 122728056
Test: Internal tests
Change-Id: Id3fcacdd5445a97365c03e00656291bfe829c035
2019-02-25 15:19:06 -08:00
Sasha Smundak f7ed0513e9 Handle LOCAL_MODULE_PATH assignment for android_test modules
Many Android.mk files for the CTS tests have
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
statement. This can be dropped during the conversion to blueprint
files.
Also, ignore the assignments to obsolete LOCAL_CTS_TEST_PACKAGE
variable.

Fixes: 125405331
Test: Internal tests, selectively run androidmk on Android.mk's in cts/
directory

Change-Id: I2ed88acd3c8837f96b84be6eb7c7b9b0b5405f57
2019-02-22 15:10:08 -08:00
Sasha Smundak ff36da04e8 Implement vts_config module
Test: internal (see android/vts_config_test.go) + run 'm vts' and check
that host/linux-x86/vts/android-vts.zip remians the same
Change-Id: I0249a974a240e7669c3b9378c17739df8e120873
Fixes: 122617100
2019-02-19 16:58:43 -08:00
Colin Cross 46abdad46a Add support for use_embedded_dex in Soong
When use_embedded_dex is set, store the dex uncompressed in the
APK and set the android:useEmbeddedDex="true" attribute in the
manifest.

Test: m checkbuild
Change-Id: Iea6e7ed19599830ac72392ef93f9c98957df1cce
2019-02-08 15:25:17 +00:00
Colin Cross e4246abd7f Make manifest and APK agree on uncompressed native libs
Only put uncompressed native libs in an APK if the min_sdk_version
supports it (>= 23, Marshmallow), and set
android:extractNativeLibs="false" in the AndroidManifest.xml so
that the platform won't extract them anyways.

Bug: 117618214
Test: m checkbuild
Change-Id: I760017e48bf3c6b618aabde0982df45995765d48
2019-02-08 15:24:47 +00:00
Sasha Smundak 7054764304 Convert BUILD_PREBUILT with LOCAL_MODULE_CLASS=ETC to prebuilt_etc
The conversion is a two-step process: first, when processing
BUILT_PREBUILT, convert LOCAL_SOURCE_PATH to a variable reference+fixed
subpath path in the blueprint AST. Then, set various boolean flags
depending on variable being referenced. androidmk_test.go has a test for
each handled case.

Change-Id: Iabd18d5f8645ca7077536863cd6640df5b24d24a
Fixes: 122906526
Test: treehugger
2019-01-24 18:46:31 -08:00
Colin Cross 11ecdd6979 Translate LOCAL_ANNOTATION_PROCESSORS to java_plugin
The annotation_processors property is deprected, translate
LOCAL_ANNOTATION_PROCESSORS to plugins instead.  Also remove
LOCAL_ANNOTATION_PROCESSOR_CLASSES properties, they are
retrieved from java_plugin dependencies instead.

Bug: 77284273
Test: androidmk_test.go
Change-Id: If6f6177262d5579e03bae58d9eb54a599e3da786
2019-01-24 23:47:56 +00:00
Dan Willemsen e9622a33c3 Add BUILD_CTS_* to androidmk
Bug: 122617736
Test: new unit tests
Change-Id: Ibce6b4bbe49015a1ca6cf88cd43badc6b5cc078e
2019-01-15 16:39:02 -08:00
Sasha Smundak e5c5317f44 Handle Jacoco filters
Test: treehugger
Change-Id: I8bf242cdb4709d086ff0806c143ff03ad2e5cd30
2019-01-09 19:30:38 +00:00
Anton Hansson 1976a25692 Make androidmk translate LOCAL_32_BIT_ONLY
Translate LOCAL_32_BIT_ONLY := true to compile_multilib: "32".

Test: androidmk frameworks/av/services/mediadrm/Android.mk
Change-Id: I9f73f5fdfc67738286844ff42b39ee54403fe649
2019-01-09 10:50:57 +00:00
Jaewoong Jung acb529b038 Handle multi dir all-*-files-under function calls.
This change fixes a bug where androidmk assumes all-*-files-under
function only takes one directory parameter.

Test: androidmk_text.go, manual execution
Change-Id: Ib1614a2ddde7ea1120c1c37126231988f4862165
2019-01-09 00:07:01 +00:00
Jaewoong Jung 18ef4a2881 Add LOCAL_OVERRIDES_PACKAGES support to androidmk.
It is supposed to be translated to overrides.

Test: Manual test
Change-Id: Ice2e7c5f7669ad1e4c3e82000c8dd52d20a49a7a
2019-01-07 14:30:43 -08:00
Dan Willemsen 72be5901eb Add `aapt_include_all_resources`
The equivalent of Make's LOCAL_AAPT_INCLUDE_ALL_RESOURCES.

Test: build LatinIME with Soong
Change-Id: Ib76bea5f28e365b59fa9477b9bceabb84012ff8e
2018-10-29 23:49:46 +00:00