我在使用nanomsg的 TensorFlow 的私有分支之上编写了一个模块。
对于我的本地开发服务器,我曾经cmake install
安装 nanomsg (to /usr/local
) 并从其安装位置访问头文件。该项目在本地运行良好。
但是,我现在需要在我的 TensorFlow 工作区中打包 nanomsg。我尝试了以下两种方法,但都没有令人满意:
与 OpenCV 的这个答案类似,我将 nanomsg 预编译到一个私有存储库中,
tensorflow/workspace.bzl
使用http_archive 指令将其加载到我的工作区(within)中,然后在相关构建脚本中包含头文件和库。这运行良好,但不是便携式解决方案。一个更便携的解决方案,我创建了一个
genrule
运行特定的cmake
命令序列,可用于构建 nanomsg。这种方法更整洁,但genrule
不能重用于cmake
其他项目。(我提到了这个讨论)。
显然cmake
,在 Bazel 构建中不支持作为一等公民。是否有人在您自己的项目中遇到过这个问题,创建了一种通用的、可移植的方式来将库包含在使用构建的 Bazel 项目中cmake
?如果是这样,你是如何处理它的?