我有一个git存储库,其中包含一些C ++中的测试代码,并且我想使用Googletest编写一些测试。我使用git submodule
将其作为上述存储库的一部分。我想使用meson作为构建引擎。到目前为止,一切都很好。
但是,我无法理解如何让介子来构建测试并将其与googletest子模块链接...我应该使用自动换行吗?有外部依赖吗?什么?
请注意,meson supports dependencies on packaged versions of gtest/gmock并不是我想要的,因为gtest / gmock的开发人员建议不要这样做。另外,我想流血的边缘,因为我疯了⸮
此外,我不认为忍者在这里扮演角色,但我提到我只是为了以防万一。
答案 0 :(得分:2)
如果要使用不是介子项目的项目,则需要在wrapDB中找到该项目:
meson wrap search gtest
如果该命令为您提供了自动换行的名称,那么您需要将其安装到您的项目中:
meson wrap install gtest
然后,您应该重新配置项目,介子将为您下载该项目:
meson --reconfigure path/to/build/dir
您可以在wrap tool的文档中找到其他信息。
-重新配置-自0.49.0
开始受支持答案 1 :(得分:1)
我尝试将the wrap for gtest与
一起使用gtest_proj = subproject('gtest')
gtest_dep = gtest_proj.get_variable('gtest_dep')
gmock_dep = gtest_proj.get_variable('gmock_dep')
在meson.build
中。这将建立googletest的本地副本,然后可以像这样使用它:
tests_src = [
'tests/gtest-all.cpp',
'tests/test_MyClass.cpp',
]
e = executable(
'gtest-all',
tests_src,
dependencies : [
gtest_dep,
gmock_dep],
link_with : libshield,
)
test('gtest tests', e)
请注意,libshield
是一个由我(玩具)代码创建的共享库,因此我可以链接到它。