Применять условия для «option_subdirs», используя Golang in Android .bp? - PullRequest
1 голос
/ 28 января 2020

В нашем исходном коде AOSP по этому пути есть одна библиотека vendar/myvendor/apps/Dialer/SomeLib, поскольку SomeLib находится на втором уровне каталога приложений. Нам нужно было добавить ниже в Dialer приложения Android.bp, чтобы включить SomeLib во время сборки:

optional_subdirs = [
    ....
    "*",
]

Так что, как и ожидалось, SomeLib подбирается во время сборки. Однако этот Lib должен быть выбран для конкретной цели, а не для других. Чтобы сделать это, я хочу написать реализацию golang, в которой я соответственно поставлю условие.

Для реализации Golang мы можем добавить только модуль, переопределяющий существующий, где существующие модули могут быть android, apex, cc et c. Для справки проверьте этот вопрос Здесь модуль apex используется для написания собственного модуля поверх него. Но в случае optional_subdirs это не модуль и не подпадает под тип модуля. из-за чего я не могу идти дальше. Любая помощь будет отличной.

1 Ответ

1 голос
/ 28 января 2020

Примечание: subdirs и optional_subdirs устарели с Android P ie (см. здесь ). Отныне все Android.bp файлы будут включены Soong.

Опция # 1

Вы можете обновить все модули, которые ссылаются на SomeLib, как часть его shared_libs или static_libs вместо попытки изменить optional_subdirs. Это можно сделать с помощью пользовательского Mutator в Soong.

. Вы можете найти множество примеров написания пользовательских модулей, выполнив поиск bootstrap_go_package в AOSP.

Option # 2

Если вы хотите установить библиотеку только в зависимости от типа устройства, вы можете добавить библиотеку в список PRODUCT_PACKAGES файлов device.mk, в которых вы хотите, чтобы она была включены (см. здесь ).

...