2017-09-30 3 views
0

私のプロジェクトはBazelからCMakeへと移行しており、Abseilというスナップショットを私たちのリポジトリ内の最上位ディレクトリthird_party/にチェックインしています。私は、移行中に両方のビルドシステムをサポートする必要があるので、ファイルをCMakeLists.txt作成し、Abseilヘッダーをコンパイルするためにはかなりの警告を無効にする必要があることに気付きました。Bazelヘッダーを含めるときに角 "<>"角括弧を許可する方法はありますか?

CMakeの場合は、#include <absl/strings/str_cat.h>構文を使用してヘッダーを含めることができるので、これは問題ありません。これはコンパイラにシステムヘッダであることを伝え、警告を無視してグローバルに無効にする必要はありません。 Bazelについては

、しかし、私はこのエラーを取得する:

error: 'absl/strings/str_cat.h' file not found with include; use "quotes" instead

<>スタイルが含まれて許可するようにBazelを伝える方法はありますか?これらのヘッダーの警告だけを無効にするもう1つの方法は、プロジェクト全体でも無効にすることはありませんか?

+0

Bazelにインクルードディレクトリを追加できませんか?ここに追加するフラグについてはhttps://docs.bazel.build/versions/master/bazel-and-cpp.html#include-pathsを参照してください。 – user2205930

+0

システムのインクルードパスにシンボリックリンクを追加して、必要なディレクトリを指定できますか?多分Bazelはこれをと同じものと見なすでしょう。 – user2205930

+0

これらの警告が何であるかを教えてください。 Abseilは、Visual Studioでも、無料で警告するという目標を持っています。 (Googleは内部的に多くの警告を有効にしていますが、警告がオンになっているので、コンパイラの警告が表示されないようにしたいと思っています) – jorgbrown

答えて

0

デフォルトでは、bazelはコンパイルアクションのためのcc-library-specificインクルード(-I)のフラグを発行しません。インクルード検索はフリーではないので、単一のルートヘッダ階層に依存しています。しかし、cc_libraryincludesを使ってカスタムインクルードディレクトリを追加するようにbazelに指示することができます。または、好ましくは、strip_include_prefixおよびinclude_prefixを使用します。

関連する問題