No description
Find a file
Mårten Kongstad fe753f5365 aconfig: add support for cargo
Officially, aconfig is build using the Android tool-chain. However, to
speed up the local development cycle, add support for building with
cargo.

While it is possible to tell cargo to place the build artifacts outside
the source tree, there is no way to tell it to not generate the cargo
lock file in the same directory as Cargo.toml. Add a .gitignore to
ignore Cargo.lock and the target directory.

The way the Android build system and cargo generates code from the
protobuf files is slightly different. Tell cargo to enable the "cargo"
feature and introduce src/protos.rs to hide this difference from the
rest of the aconfig source.

Bug: 279485059
Test: m aconfig && aconfig
Test: atest aconfig.test
Test: cargo build
Test: cargo test
Change-Id: I85741f58cadae353ed95c124f566e4f4a7484186
2023-05-03 09:41:11 +02:00
common Fix BOARD_SYSTEMSDK_VERSIONS checks 2021-11-10 00:34:17 +00:00
core Merge "Generate enforce_uses_libraries.status to out/target/product" 2023-05-03 00:09:09 +00:00
packaging Fix creating _dist_<goal> targets under !dist 2018-10-21 08:56:27 -07:00
target Merge "Remove config for 64-bit binder ABI" 2023-05-01 21:32:30 +00:00
tests Fix whitespace in soong_config_set calls 2023-05-02 10:11:02 -07:00
tools aconfig: add support for cargo 2023-05-03 09:41:11 +02:00
.gitignore ignore .iml files (IntelliJ) 2022-06-17 12:17:53 -04:00
banchanHelp.sh Allow selecting a different product in banchan. 2021-04-19 18:32:00 +01:00
buildspec.mk.default
Changes.md Add BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES 2023-03-09 11:55:29 -08:00
CleanSpec.mk Make SOONG_HOST_OUT an alias for HOST_OUT 2021-11-18 16:26:58 -08:00
Deprecation.md Obsolete unused module types 2020-04-18 21:00:18 -07:00
envsetup.sh envsetup: syswrite - wait after rooting 2023-04-17 17:22:41 +00:00
help.sh Add sync to m help 2022-09-22 02:26:10 +00:00
METADATA Move comment to license_note 2022-03-03 14:57:46 -08:00
navbar.md
OWNERS Remove OWNERS access for non-build team people to core build system 2023-02-28 10:52:10 -08:00
PREUPLOAD.cfg Disallow use of error-prone merge-strategies 2021-02-23 15:07:02 +00:00
rbesetup.sh Update rbesetup.sh script to no longer set certain env variables 2022-05-27 11:31:45 -04:00
README.md
shell_utils.sh Pull common methods into shell_utils.sh, which can be included by scripts. 2023-01-03 14:12:43 -08:00
tapasHelp.sh Add a keys argument to tapas 2022-02-07 18:50:22 +00:00
Usage.txt Remove the PRODUCT-* goal 2019-07-29 14:27:04 -07:00

Android Make Build System

This is the Makefile-based portion of the Android Build System.

For documentation on how to run a build, see Usage.txt

For a list of behavioral changes useful for Android.mk writers see Changes.md

For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.

This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.