Build 如何在bazel中有条件地指定C编译器定义?
我正在尝试将Makefile build转换为bazel,需要重现以下条件,以指定为C代码编译定义的CPU功能:Build 如何在bazel中有条件地指定C编译器定义?,build,bazel,Build,Bazel,我正在尝试将Makefile build转换为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 := $(
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_库
有定义
和copts
,我可以使用select
函数,但我无法理解我可以在select中使用什么样的条件
一般来说,你会做这样的事情
config_setting(
name = "avx2",
values = {
"define": "avx2=yes"
}
)
您可以选择on:avx2
条件:
cc_library(...
copts = select({":avx2":[...], ...})
和巴泽尔一起跑
bazel build --define avx2=yes ...