Bazel:为 cc_binary/cc_test 设置运行时环境变量和配置文件位置

Far*_*eam 4 c++ bazel

我正在尝试在 Linux 上的 C++ 应用程序中使用 odbc++。以下构建文件用于将库作为外部依赖项包含在内

licenses(["notice"])
cc_library(
    name = "lib",
    srcs=["lib/libodbc.so","lib64/libodbc++-mt.so"],
    hdrs=glob(["include/**/*.h","include/*.h"]),
    includes = ["include"],
    visibility = ["//visibility:public"],
    linkstatic = 1,
    data = [ "odbc.ini", "odbcinst.ini" ]
)
Run Code Online (Sandbox Code Playgroud)

我的 bash 配置文件设置了 ODBCINI 和 OBCDINST,因此直接从命令行运行二进制文件就可以了。但是,运行 bazel 测试时未设置环境变量 ODBCINI 和 ODBCINST。

是否有办法包含配置文件并为其设置运行时环境变量?

谢谢

Ada*_*dam 8

您可以使用 --test_env 标志在 bazel 中设置用于测试执行的环境变量。文档位于:https ://docs.bazel.build/versions/master/command-line-reference.html

例如,bazel build --test_env ODBCINI=foo //my:test