nanomsgを使用するTensorFlowのプライベートフォークの上にモジュールを作成しました。Bazelプロジェクト内でCMakeライブラリを構築する
私のローカル開発サーバーでは、cmake install
を使ってnanomsg(/usr/local
)をインストールし、インストールされた場所からヘッダーファイルにアクセスしました。プロジェクトはローカルで正常に動作します。
しかし、今では、TensorFlowワークスペース内にnanomsgをパッケージ化する必要があります。私は、次の2つのアプローチを試みたが、満足どちらも見つけました:
OpenCVのための this answerと同様に、私は(
tensorflow/workspace.bzl
以内)私のワークスペースの中でそれをロードし、プライベートリポジトリにnanomsgをプリコンパイルし、その後含まhttp_archive directiveを使用してヘッダーとライブラリを作成します。これは正常に動作しますが、ポータブルな解決策ではありません。さらに移植性の高いソリューションとして、
cmake
コマンドの特定のシーケンスを実行してnanomsgを構築するためのgenrule
コマンドを作成しました。この方法はまれですが、他のプロジェクトのcmake
にはgenrule
を再利用することはできません。 (私はthis discussionを参照しました)。
明らかにcmake
は、Bazelビルドの第一級市民としてサポートされていません。あなた自身のプロジェクトでこの問題に直面した人は、cmake
を使ってビルドされたBazelプロジェクト内にライブラリを含めるための一般的な移植可能な方法を作りましたか?もしそうなら、どうやってそれにアプローチしましたか?
あなたはどのように移植したいですか? Linux、MacOS、Windows? 2では、他のプロジェクトに同じジェネラルを使用できないのはなぜですか?私はBazelを研究していますが、これまでのところ、一般的な解決策を思いついた人は誰も聞いていません。 –