将CMAKE项目集成到Buck中的最佳方法是什么?
What is the best way to integrate a CMake project into Buck?
我正在为自己的C 项目使用buck,但我依靠使用CMAKE构建的第三方库。CMAKE文件很复杂,因此我认为将其CMAKE文件重新创建为Buck是不切实际的。相反,我想从Buck打电话给Cmake。
从Buck打电话的最佳方法是什么?
我应该如何构建我的项目以最大程度地减少头痛?
我的建议是使用genrule和prebuilt_cxx_library。
这是我使用Google测试的雄鹿研究项目:https://github.com/ar90n/lab/tree/master/sandbox/buck-study/gtest
此项目包含两个块文件。一个(./gtest/BUCK
)用于获取和构建Google测试。另一个(./BUCK
)用于构建和运行测试程序。
如果要构建和运行此项目,请执行以下命令,
$ buck fetch //gtest:googletest-src
$ buck build :sample1
$ buck run :sample1
调用cmake将破坏可重复性,因此这不是最好的方法。而是尝试以下内容:
- 分叉用Cmake构建的项目。
- 致电cmake生成任何标头文件。
- 将标题文件保存在项目中的某个地方(例如
/cmake-generated
)。 - 创建CMAKE生成的标头文件的仅标头库。
- 根据cmake库来建立项目的其余部分。
- 将所有内容都投入git。
- 重复您需要的每个目标的步骤2。
这不如真正的端口那样好,但是您可以获得一次手动步骤的大部分好处。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?