Использование select при определении слова в Bazel - PullRequest
0 голосов
/ 09 мая 2019

В Базеле я часто вижу следующий код:

srcs = [
        "foo/bar.c",
    ] + select({
        "@org_tensorflow//tensorflow:linux_x86_64": [
            "foo/baz.c",
        ],
        "//conditions:default": [],
    })

Но как мне с условным добавлением dict вот так?

subs = {
        "#undef HWLOC_VERSION_MAJOR": "#define HWLOC_VERSION_MAJOR 2",
}

1 Ответ

0 голосов
/ 14 мая 2019

Это было совершенно неинтуитивно, но мне удалось сделать это следующим образом:

common_subs = {"foo": "bar"}

linux_subs = {"baz": "boo"}

subs = select({
  "@org_tensorflow//tensorflow:linux_x86_64": dict(common_subs, **linux_subs),
  "//conditions:default": common_subs,
})

Я узнал, что ** магия от Python.

...