Produkt- und Boardkonfiguration mit Starlark

Produkt- und Board-Konfigurationen definieren Make-Variablen, die sich auf den Build auswirken. Dies steht im Gegensatz zu Android.mk-Dateien, die Make-Regeln definieren. Die Produktkonfigurations-Makefiles der obersten Ebene werden definiert, indem sie zu PRODUCT_MAKEFILES in einer AndroidProducts.mk Datei hinzugefügt werden. Board-Konfigurations-Makefiles der obersten Ebene heißen BoardConfig.mk und sind in Ordnern enthalten, deren Namen den Wert von TARGET_DEVICE haben.

Wenn der Build mit festgelegtem RBC_PRODUCT_CONFIG und/oder RBC_BOARD_CONFIG ausgeführt wird, werden diese Dateien in Starlark konvertiert und vom Starlark-Interpreter ausgeführt, anstatt sie in Make auszuführen.

Skript für Regressionstests

Das Regressionsskript rbc_regression_test.sh führt den Build mit und ohne den Starlark-Autokonverter aus und vergleicht die resultierenden Ninja-Dateien – sie sollten identisch sein.

Probleme in Makefiles

Einige Muster können nicht von Make in Starlark konvertiert werden und müssen manuell entfernt oder umgestaltet werden. Dieser Vorgang kann jetzt durchgeführt werden, um bereit zu sein, wenn die Starlark-Konvertierung standardmäßig aktiviert ist. Auf den Seiten im Abschnitt „Probleme“ in der Seitenleiste finden Sie einige gängige Muster und Alternativen.