Вы можете использовать select()
, config_setting
и --fat_apk_cpu
для этого:
cc_library(
name = "foo",
srcs = select({
"arm64-v8a": ["foo/lib/arm64-v8a/libfoo.a"],
"armeabi-v7a": ["foo/lib/armeabi-v7a/libfoo.a"],
"x86": ["foo/lib/x86/libfoo.a"],
"x86_64": ["foo/lib/x86_64/libfoo.a"],
}),
)
config_setting(
name = "arm64-v8a",
values = {
"cpu": "arm64-v8a",
},
)
config_setting(
name = "armeabi-v7a",
values = {
"cpu": "armeabi-v7a",
},
)
config_setting(
name = "x86",
values = {
"cpu": "x86",
},
)
config_setting(
name = "x86_64",
values = {
"cpu": "x86_64",
},
)
и ваши cc_library
правила могут зависеть от foo
.
Тогда укажите --fat_apk_cpu
в командной строке, например, чтобы собрать и упаковать .so
для каждой платформы, укажите --fat_apk_cpu=arm64-v8a,armeabi-v7a,x86,x86_64
или некоторое подмножество для того, на что вы нацеливаетесь, например, для эмулятора --fat_apk_cpu=x86_64