出于很多原因,我更喜欢将Boost.UTF用于gtest(或其他替代方案)。 我最近决定使用Bazel作为我的构建系统,因为我基本上是在教程级别,我在网上寻找在Bazel中使用Boost的方法,但是它们似乎都没有处理Boost.UTF,因为这个库是不是标题(就像在https://github.com/nelhage/rules_boost中处理的那样),我不知道如何继续。
如何将Boost.UTF添加到Bazel中,以便将其用于我的测试模块?
欢迎任何提示,谢谢。
P.S。 解决这个问题的唯一方法是尝试在我构建的机器上安装boost并尝试让Bazel使用它。我想这就是它如何处理标准库。
编辑: 这是我单元测试的代码。
btest.cpp
#define BOOST_TEST_MODULE CompactStateTest
#include <boost/test/included/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(Suite1)
BOOST_AUTO_TEST_CASE(Test1)
{
int x(0);
BOOST_CHECK_EQUAL(x, 0);
}
BOOST_AUTO_TEST_SUITE_END()
BUILD(bazel的“Makefile”)
cc_test(
name = "btest",
srcs = ["btest.cpp",],
deps = ["@boost//:test",],
)
答案 0 :(得分:1)
从bazel(和cc_test
)的角度来看,测试是一个二进制文件,它在失败时返回非零退出代码,可能(非强制性)编写由XML_OUTPUT_FILE指定的xml文件env var set在测试执行时使用xml测试结果。
因此,您的目标是使用所有cc_test
集编写deps
规则,以便bazel可以编译并运行它。为此,您需要为Boost.UTF添加依赖关系cc_library
。这将是cc_library
和hdrs
以及srcs
(和/或deps
)的标准bazel new_
。
我期待您关于如何依赖本地系统上安装的文件的下一个问题,因为您会发现local_repository(以及它的 // Remove entry from database table
database.delete(FAVORITES_TABLE, FAVORITES_ITEM_ID + " = " + soundObject.getItemID(), null);
// Refesh current fragment
????????????????????????????????
变体)非常有用。