Только такие "зависимые" цели аннулируются таким изменением. В конце концов, это по сути вход / источник, как исходный файл, описание сборки, инструмент или переменная окружения. Например:
config_setting(
name = "bar",
define_values = {
"bar": "1",
},
)
cc_binary(
name = "hello",
srcs = ["hello.cpp"],
)
cc_binary(
name = "chello",
srcs = ["hello.c"],
copts = select(
{
":bar": ["-DBAR"],
"//conditions:default": [],
}
),
)
Только chello
цель будет переделана при манипулировании значением --define bar=...