aboutsummaryrefslogtreecommitdiffstats
path: root/androidmk
Commit message (Collapse)AuthorAgeFilesLines
* androidmk conversion logic for android_app_importJaewoong Jung2019-09-272-0/+27
| | | | | | Test: androidmk_test.go, bpfix_test.go Bug: 128610294 Change-Id: Ide183ba1e696fa0ffb4245e3288ffc47535b39af
* Add 'Additional_manifest' property to merge other manifestschangho.shin2019-09-111-0/+2
| | | | | | | | This is equivalent to 'LOCAL_FULL_LIBS_MANIFEST_FILES' in Make. Fixes: 123374442 Test: m -j Change-Id: Ic4b40a08f2454687c74949020598651acea3b2dd
* Rename jetifier property and add it to androidmkColin Cross2019-03-222-0/+3
| | | | | | | | | | 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
* Rename test descriptionNg Zhi An2019-03-191-1/+1
| | | | | | Bug: 127712304 Test: m androidmk Change-Id: I1ffb07c2bce0c3890d8e8d8a5661ba351bcadd68
* Skip obsolete JACK flagsNg Zhi An2019-03-152-0/+18
| | | | | | Fixes: 127712304 Test: m androidmk Change-Id: Ia2f0ccd184151c691563779d1828c111800ed382
* Fix crash in mergeListPropertiesSasha Smundak2019-03-111-0/+19
| | | | | | | | | | | | | | | 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
* Do not "escape" newline if comment ends with ESC character.Sasha Smundak2019-03-062-3/+16
| | | | | | Fixes: 127521510 Test: manual Change-Id: I88a8eb2ca94b8aa06e2682d2c14f9e74f5ada286
* Fixe typos in androidmk.Jaewoong Jung2019-03-052-4/+4
| | | | | | | Replace contitional with conditional. Test: androidmk_test.go Change-Id: Ic261701f4588b9b8b6d3560598831368c3422508
* Revert $(LOCAL_PATH) handling for `certificate` andSasha Smundak2019-03-012-27/+21
| | | | | | | | `additional_certificates` properties. Bug: 122728056 Test: builtin tests Change-Id: I96f84bf7396447b0207438a4073c864f2d9b1ab7
* Handle $(LOCAL_PATH) in androidmkSasha Smundak2019-02-252-20/+105
| | | | | | | | | | | | | 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
* Handle LOCAL_MODULE_PATH assignment for android_test modulesSasha Smundak2019-02-222-0/+5
| | | | | | | | | | | | | | | 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
* Implement vts_config moduleSasha Smundak2019-02-193-17/+50
| | | | | | | 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
* Add support for use_embedded_dex in SoongColin Cross2019-02-081-0/+1
| | | | | | | | | 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
* Make manifest and APK agree on uncompressed native libsColin Cross2019-02-081-0/+1
| | | | | | | | | | | 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
* Convert BUILD_PREBUILT with LOCAL_MODULE_CLASS=ETC to prebuilt_etcSasha Smundak2019-01-242-1/+255
| | | | | | | | | | | | 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
* Translate LOCAL_ANNOTATION_PROCESSORS to java_pluginColin Cross2019-01-242-2/+20
| | | | | | | | | | | 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
* Add BUILD_CTS_* to androidmkDan Willemsen2019-01-152-0/+60
| | | | | | Bug: 122617736 Test: new unit tests Change-Id: Ibce6b4bbe49015a1ca6cf88cd43badc6b5cc078e
* Handle Jacoco filtersSasha Smundak2019-01-092-0/+12
| | | | | Test: treehugger Change-Id: I8bf242cdb4709d086ff0806c143ff03ad2e5cd30
* Make androidmk translate LOCAL_32_BIT_ONLYAnton Hansson2019-01-091-0/+15
| | | | | | | Translate LOCAL_32_BIT_ONLY := true to compile_multilib: "32". Test: androidmk frameworks/av/services/mediadrm/Android.mk Change-Id: I9f73f5fdfc67738286844ff42b39ee54403fe649
* Handle multi dir all-*-files-under function calls.Jaewoong Jung2019-01-094-26/+53
| | | | | | | | 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
* Add LOCAL_OVERRIDES_PACKAGES support to androidmk.Jaewoong Jung2019-01-071-0/+1
| | | | | | | It is supposed to be translated to overrides. Test: Manual test Change-Id: Ice2e7c5f7669ad1e4c3e82000c8dd52d20a49a7a
* Add `aapt_include_all_resources`Dan Willemsen2018-10-291-18/+19
| | | | | | | The equivalent of Make's LOCAL_AAPT_INCLUDE_ALL_RESOURCES. Test: build LatinIME with Soong Change-Id: Ib76bea5f28e365b59fa9477b9bceabb84012ff8e
* Fix how soong converts LOCAL_STRIP_MODULE.Jaewoong Jung2018-10-152-1/+65
| | | | | | | | | It should be translated to a poperty map with one entry, not a string value. Bug: 74083867 Change-Id: Ida659749a63e67eb55184e7c79959f57b8549dad Test: androidmk_test.go
* Add support for android_app_certificate modulesColin Cross2018-10-081-0/+1
| | | | | | | | | | Some android_app modules need certificates located outside their directory. Instead of requiring paths from the root of the tree, add an android_app_certificate module that exports the certificate files. Test: m checkbuild Change-Id: Icbf3898894f3eb857e2d907e3e58dd072c6fabe9
* Add support for JNI libraries to android_app modulesColin Cross2018-10-081-0/+1
| | | | | | | | | | | Make android_app modules a MultiTargets module, which means the common variant will have a list of Targets that it needs to handle. Collect JNI libraries for each Target, and package them into or alongside the APK. Bug: 80095087 Test: app_test.go Change-Id: Iabd3921e1d4c4b4cfcc7e131a0b0d9ab83b0ebbb
* Add support for /product-services partitionDario Freni2018-07-191-0/+1
| | | | | | | | | This is an adaptation of Icc4f8c16bc389fe20db680849f311d02df1299c3, to support modules that are installed on the /product-services partition. Bug: 80741439 Test: m -j both with and without enabling the new partition Change-Id: I72b335ad38baff5848cd3da7489343f8cf98ff16
* Translate java libraries to java_libraryColin Cross2018-07-112-5/+47
| | | | | | | | | | In androidmk, translate BUILD_JAVA_LIBRARY to java_library plus installable: true, and BUILD_STATIC_JAVA_LIBRARY to java_library. In bpfix, rewrite java_library_static to java_library. Bug: 110885583 Test: androidmk_test.go, bpfix_test.go Change-Id: I63c2f759ae9c62a43f3439526552d2cd8e8cedc3
* Add support for min_sdk_versionColin Cross2018-07-091-0/+1
| | | | | | | | | | | Add min_sdk_version properties and use it for aapt2 --min-sdk-version and --target-sdk-version flags. Add an sdkContext interface that any function that needs an sdk version can take in order to get the values for the current module. Bug: 110848854 Test: m checkbuild Change-Id: Ic69f1f935d8b865ec77689350407df08bfac5925
* Add support for android_test modulesColin Cross2018-05-241-0/+27
| | | | | | | | | android_test module are APKs that can be run as tests, either as standalone unit tests or as instrumentation tests for another APK. Test: m checkbuild Change-Id: I16661701637e4048fd99442029c3e195ebf373a4
* Support platform_apis propertyColin Cross2018-05-221-0/+2
| | | | | | | | | Add a platform_apis property. The logic to verify it isn't hooked up yet, but this will allow translating modules to Soong without losing the annotation. Test: m checkbuild Change-Id: I75ff2d7b94247873f5bb1547a9b347a8e73c3191
* Fix optimize.proguard_flags_files typoColin Cross2018-05-221-1/+1
| | | | | | | | LOCAL_PROGUARD_FLAG_FILES should convert to optimize.proguard_flags_files, not optimize.proguard_flag_files. Test: m checkbuild Change-Id: I1471afc006a2a3892af37d2cb73c51636f05d7f7
* Remove the unused `tags` propertyDan Willemsen2018-05-151-2/+36
| | | | | | | | And fix up androidmk / bpfix to provide warnings about what to do instead. Test: m blueprint_tools (runs the tests, ensures there aren't any tags left) Change-Id: I1a3ad8600211050420041740207d6957f44463c8
* Merge changes I52f88bfd,I4263b7d5android-build-prod (mdb)2018-05-086-8/+225
|\ | | | | | | | | | | * changes: Fix usage of bytes.NewBuffer in bpfix Add a dependency fixer for proto deps
| * Add a dependency fixer for proto depsDan Willemsen2018-05-076-8/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | protoc dependency files, at least for C++ outputs, uses the form of: a/b.c \ a/b.h: <dep1> <dep2>... Ninja will fail the command when it parses a dep file and there's more than one output file (even though it doesn't care what the output file name is). So this tool will parse the original file, and output a version with only a single output file. Bug: 67329638 Test: NINJA_ARGS="-t deps ...pb.c" m Test: NINJA_ARGS="-t deps ...srcjar" m Test: NINJA_ARGS="-t deps ...srcszip" m Test: Run dep_fixer across all of taimen's dep files, no failures. Test: Run dep_fixer against the processed files, no changes. Test: Run androidmk across all of our Android.mk files, inspect the diffs Change-Id: I4263b7d5faea37285afa6b24dedf5964aa7d19dc
* | Fix androidmk converting cc librariesDan Willemsen2018-05-051-0/+13
|/ | | | | | | | The java library rewrites should only happen for java modules, not cc modules. Test: Ran androidmk on a number of Android.mk files Change-Id: Ife2cfb5a69d7db37216671f08317033b99fcd3a1
* Fix androidmk_test.go import orderingColin Cross2018-04-161-1/+2
| | | | | Test: m checkbuild Change-Id: I9fb94f22a157ffb9369eea071a867289c37cf026
* Add more androidmk translations for android librariesColin Cross2018-04-162-0/+66
| | | | | | | | | | | | | | | Add support for translating LOCAL_MANIFEST_FILE, LOCAL_RESOURCE_DIR LOCAL_SHARED_ANDROID_LIBRARIES, and LOCAL_STATIC_ANDROID_LIBRARIES. Use the presence of non-empty LOCAL_RESOURCE_DIR, LOCAL_SHARED_ANDROID_LIBRARIES or LOCAL_STATIC_ANDROID_LIBRARIES to convert a java_library_static into an android_library module, and then squash LOCAL_SHARED_ANDROID_LIBRARIES into LOCAL_SHARED_LIBRARIES and LOCAL_STATIC_ANDROID_LIBRARIES into LOCAL_STATIC_LIBRARIES. Test: androidmk_test.go Change-Id: I3ad2a3561f69ebd097eca97cb170754d64e06123
* Merge matching properties in bpfixColin Cross2018-04-161-21/+5
| | | | | | | | | androidmk will start to generate multiple static_libs: properties in a single module, add a pass in bpfix to fix them up into a single property. Test: bpfix_test.go Change-Id: I30955b6efbb767c02ba77f2f18d44951ef094bad
* Make bpfix not modify the input treeColin Cross2018-04-161-1/+2
| | | | | | | | Make a new object called Fixer to hold the state of the tree, and make a copy of the input tree so the original doesn't get modified. Test: bpfix_test.go Change-Id: I1dc6fd99158c8b0e1db029df99e6cf72699a5e63
* Add USE_CLANG_LLD and use_clang_lld.android-o-mr1-iot-preview-8Chih-Hung Hsieh2018-04-121-0/+1
| | | | | | | | | | | | | | | | | | | * USE_CLANG_LLD is unedefined in current builds. * When USE_CLANG_LLD is defined to 'true' or '1', use clang's lld instead of ld or ld.gold. * When lld is enabled: * ld-only flags are not passed to 'lld'. * location_packer is disabled. * Use new lld's --pack-dyn-relocs=android. * When lld does not work: * In Android.mk files use LOCAL_USE_CLANG_LLD := false. * In Android.bp files use use_clang_lld: false. * Only arm, arm64, x86, and x86_64_devices have LLD flags; all other hosts and targets do not call lld yet. Bug: 73768157 Test: make checkbuild and boot Change-Id: I06b8a1e868a600997a7e70fe05c299d751d23d5f
* Add vintf_fragments.Steven Moreland2018-04-051-0/+1
| | | | | | | | | Bug: 66917623 Test: fragments are loaded in the right place Test: boot device which is depending on fragments Test: androidmk file which uses LOCAL_VINTF_FRAGMENTS properly converted Change-Id: I366b731cf8d5ecf51851866f441ff1c517da75cf
* Add overrides to cc_binaryYifan Hong2018-04-031-0/+1
| | | | | | | Test: use it for healthd, it is not installed. Bug: 77541952 Change-Id: I170a31d1b4d15f20de6a6b6279a2eeda49ca7447
* Fix format string issuesColin Cross2018-03-281-2/+2
| | | | | | | Fix issues caught by go vet. Test: m checkbuild Change-Id: Ib8d740457c15432dabe1575a6707726ddaf93084
* Fix java_import and android_library_import conversionsColin Cross2018-02-221-0/+30
| | | | | | | | | | | | | | java_import and android_library_import modules can't be handled directly in androidmk because the results may depend on properties that haven't been parsed yet. Add a bpfix pass (which is automatically included at the end of androidmk) to select android_library_import vs. java_import based on the extension of the prebuilt file, and convert the srcs property to jars or aars as appropriate. Bug: 73724997 Test: androidmk_test.go Change-Id: I1024742e9e96d5e1e88c3cc139eeb0d5a2f6849b
* Don't pretend *parser.List is immutableColin Cross2018-02-221-2/+2
| | | | | | | | | | | | The functions in bpfix that take a *parser.List and return a modified *parser.List are always returning the same pointer and mutating the target of the pointer. Remove the extra unnecessary return value. Also extract the getLiteralListProperty function. Test: androidmk_test.go Change-Id: I08d8aff955c72b7916741cda8083974a49af4d6f
* Use product instead of oem for Product specific moduleJaekyun Seok2018-01-251-1/+1
| | | | | | | Bug: 64195575 Test: succeeded building product.img with BOARD_PRODUCTIMAGE_PARTITION_SIZE, BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE and PRODUCT_PRODUCT_VERITY_PARTITION. Change-Id: Icc4f8c16bc389fe20db680849f311d02df1299c3
* Soong: support Errorprone javacflagsAndreas Gampe2018-01-232-0/+19
| | | | | | | | | | | | | | | | | Add support for an errorprone block in Java modules that accepts additional javacflags for the errorprone build. Sample: errorprone: { javacflags: ["-Xep:EqualsNaN:WARN"], }, Bug: 72004718 Test: m RUN_ERROR_PRONE=true Test: manual - add block with ERROR to a project Test: androidmk_test Change-Id: I502248fe76c26aa19102f413af72a7324c35b7f4
* Add R8 supportColin Cross2018-01-032-0/+94
| | | | | | | Add support for R8 to optimize apps and java libraries. Test: m checkbuild Change-Id: I2afd5d7a84912d3ab613c32c599bd1ebe60562e0
* Add [soc|device|product]_specificJiyong Park2017-12-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Added three properties (soc_specific, device_specific, and product_specific) that shows what a module is specific to. `soc_specific: true` means that the module is specific to an SoC (System-On-a-Chip) and thus need to be installed to vendor partition. This has the same meaning as the old `vendor: true` setting. `device_specific: true` means that the module is specific to the entire hardware configuration of a device includeing the SoC and off-chip peripherals. These modules are installed to odm partition (or /vendor/odm when odm partition does not exist). `product_specific: true` means that the module is specific to the software configuration of a product such as country, network operator, etc. These modules are installed to oem partition (or /system/oem when oem partition does not exist). These modules are assumed to be agnostic to hardware, so this property can't be true when either soc_specific or device_specific is set to true. Bug: 68187740 Test: Build. path_tests amended. Change-Id: I44ff055d87d53b0d2676758c506060de54cbffa0
* Support more all-*-files-under functions in androidmkColin Cross2017-12-141-16/+12
| | | | | | | | Add support for all-aidl-files-under, all-Iaidl-files-under, and all-logtags-files-under to android.mk Test: manual Change-Id: I5e187e0c5f9d1c63c8632f84ab47665ba85a5678