Ответ 1
Используйте mm -B
, он перестроит все, что эквивалентно чистому, а затем сделает.
Я создаю пользовательский модуль в Android-источнике, используя команду mm
.
Когда я запускаю mm clean
, кажется, что весь проект очищен.
Как я могу ограничить чистоту только текущим модулем?
Используйте mm -B
, он перестроит все, что эквивалентно чистому, а затем сделает.
Другой способ обойтись без mm - дать make clean-<target name>
из корня Android-источника.
Аналогичным образом вы можете создать только необходимый модуль с make <target name>
make <lib> 2>&1 | grep -e "install"
Это сделает и распечатает все библиотеки, которые были скомпилированы.
В более старой системе сборки 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#_extra_tools для других инструментов.
Следует отметить, что инструмент clean, по-видимому, очищает все зависимости модуля, а не сам модуль. Я не нашел способа назначить правило, ограничивающее чистую область только для модуля.
Рекомендации: https://android.googlesource.com/platform/build/soong/+/HEAD/docs/best_practices.md