2017-09-09 33 views
1

cc_proto_libraryとよく似たルールを作成したいと考えています。主な特徴は、すべての推移的なproto_libraryの依存関係に1つのアスペクトを適用し、すべての依存関係のファイルを.cc.hと生成することです。さらに、これらをオブジェクトファイルにコンパイルするアクションが生成されます。bazelのアスペクトとcc_libraryを組み合わせる方法

私はファイルの生成方法を理解していますが、オブジェクト生成を簡単に行う方法はわかりません。 nativeモジュールはルール(またはアスペクト)実装では使用できません。オブジェクトファイルをproto_libraryと同じパッケージに生成する必要があるため、1回だけ生成されるように、アスペクトの上にマクロを使用することはできません。

cc_proto_libraryこれはSkylarkで書かれていないため、より多くのプリミティブにアクセスできるので、私は信じています。 Skylarkだけでこれを行うには、とにかくありますか?

+0

私はSkylark + C++の人にSkylarkのC++コンパイルアクションの作成についてコメントしてもらいましたが、同じプロジェクトで 'native.cc_proto_library'を使用する場合は、名前と異なるシンボル。そうしないと、出力ファイルの競合とリンカエラーが発生します。 – user1071136

答えて

0

これは残念ながら現時点では不可能です。 C++のルール/アクション(「C++ sandwich」と呼ぶ)に対するSkylark APIはありません。 2018年第1四半期にこれを実装する計画があります。多くのトラッキングの問題がありますが、これは最も関連性が高いと思われます。https://github.com/bazelbuild/bazel/issues/2163

関連する問題