gpt4 book ai didi

build - 如何有条件地在 bazel 中指定 C 编译器定义?

转载 作者:行者123 更新时间:2023-12-04 01:59:31 29 4
gpt4 key购买 nike

我正在尝试将 Makefile 构建转换为 bazel,并且需要重现以下条件以指定为 C 代码编译定义的 CPU 功能:

HAVE_AVX2 := $(shell grep avx2 /proc/cpuinfo)
ifdef HAVE_AVX2
$(info Checking for AVX support... AVX and AVX2)
CFLAGS += -DRTE_MACHINE_CPUFLAG_AVX -DRTE_MACHINE_CPUFLAG_AVX2
else
HAVE_AVX := $(shell grep avx /proc/cpuinfo)
ifdef HAVE_AVX
$(info Checking for AVX support... AVX)
CFLAGS += -DRTE_MACHINE_CPUFLAG_AVX
else
$(info Checking for AVX support... no)
endif
endif

是否可以在 bazel 中实现这样的条件?根据我的发现,cc_librarydefinescopts,我可以在其中使用 select 函数,但我不能了解我可以在 select 中使用什么样的条件。

最佳答案

看看https://docs.bazel.build/versions/master/be/general.html#config_setting .

通常,你会做类似的事情

config_setting(
name = "avx2",
values = {
"define": "avx2=yes"
}
)

并且您可以在 :avx2 条件下选择:

cc_library(...
copts = select({":avx2":[...], ...})

并运行 bazel

bazel build --define avx2=yes ...

关于build - 如何有条件地在 bazel 中指定 C 编译器定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329366/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com