Как сделать андроид мм чистым?
Я строю пользовательский модуль в Android-источнике, используя mm
команда.
Когда я бегу mm clean
Кажется, что весь проект очищен.
Как я могу ограничить чистоту только текущим модулем?
3 ответа
Использование mm -B
, он восстановит все, эквивалентное очистить, а затем сделать.
Еще один способ обойтись без мм, это дать make clean-<target name>
из корня источника Android.
Точно так же вы можете собрать необходимый модуль наедине с make <target name>
В старой системе сборки AOSP на основе make используйте
mm -B
перестроить модуль.
В более новых системах сборки AOSP на основе Ninja + Soong кажется, что -B
больше не работает. Выдает ошибкуUnknown option: -B
.
Одна из возможных альтернатив - использовать NINJA_ARGS
переменная окружения для передачи дополнительных аргументов Ninja в базовый движок сборки.
Например, следующая команда удаляет все выходные и промежуточные файлы:
NINJA_ARGS="-t clean" mm
В этом случае clean - дополнительный инструмент к системе сборки Ninja. См. https://ninja-build.org/manual.html для других инструментов.
Следует отметить, что чистый инструмент, кажется, очищает все зависимости модуля, а не самого модуля. Я не нашел способа назначить правило, ограничивающее чистую область только для модуля.
ссылки: https://android.googlesource.com/platform/build/soong/+/HEAD/docs/best_practices.md
Приставка "clean-" к имени модуля сделает чистую сборку в Android.
Например, m clean-libskia
make <lib> 2>&1 | grep -e "install"
Это сделает и распечатает все библиотеки, которые были перекомпилированы.