gpt4 book ai didi

c++ - Bazel 平台特定的 C++ 定义

转载 作者:太空狗 更新时间:2023-10-29 21:14:56 25 4
gpt4 key购买 nike

应该如何在 bazel 中包含特定于平台的标志?

假设我们有一个跨平台库,我们想要更改它的定义。

我们可以这样做吗:

defines = ["FEATURE_A"]
if somehow_detect_the_platform == 'ios':
defines.extend("FEATURE_B")

cc_library(
name = "foo",
srcs = ["foo.cc"],
defines = defines,
hdrs = ["foo.h"],
)

另请注意,此概念可应用于其他内容,例如包含、cflags、源代码、 header 等。

最佳答案

有两个选项。首先是使用 select function .使用 select,您可以根据当前配置有条件地设置属性值。

第二个选项是调整 CROSSTOOL配置文件,把具体feature这将根据工具链发出不同的标志。然后您可以在 features 中的 cc_library 中启用该功能属性。

第一个选项更简单,第二个选项更健壮且更封装。

关于c++ - Bazel 平台特定的 C++ 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278204/

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