我将 Buck 用于我自己的 C++ 项目,但我依赖于使用 CMake 构建的第三方库。CMake 文件很复杂,所以我认为在 Buck 中重新创建他们的 CMake 文件是不切实际的。相反,我想从 Buck 调用 CMake。
从 Buck 调用 CMake 的最佳方式是什么?
我应该如何构建我的项目以最大程度地减少头痛?
我的建议是使用 genrule 和 prebuilt_cxx_library。
这是我使用Google Test进行的 Buck 研究项目: https ://github.com/ar90n/lab/tree/master/sandbox/buck-study/gtest
该项目包含两个 Buck 文件。一个 ( ./gtest/BUCK
) 用于获取和构建 Google 测试。另一个 ( ./BUCK
) 用于构建和运行测试程序。
如果您想构建和运行这个项目,请执行以下命令,
$ buck fetch //gtest:googletest-src
$ buck build :sample1
$ buck run :sample1
调用 CMake 会破坏可重复性,因此它不是最好的方法。相反,请尝试以下操作:
/cmake-generated
)。这不如 Buck 的真正端口,但您可以获得一次性手动步骤的大部分好处。