2017-06-13 4 views
0

多くの理由から、私はBoost.UTFをgtest(または他の選択肢)よりも好む。 私は最近ビルドシステムとしてBazelを使用することに決めました。基本的にはチュートリアルレベルなので、BazelでBoostを使う方法をオンラインで見ましたが、Boost.UTFを扱うことはできません。ヘッダーのみではなく(https://github.com/nelhage/rules_boostで扱われるもののように)、私はどのように進めるべきかわかりません。Boost.UTFによるBazelテスト

Boost.UTFをBazelに追加するにはどうすればよいですか?私はテストモジュールに使用できますか?

ご意見ありがとうございます。ありがとうございます。

P.S. 私が見る問題を回避する唯一の方法は、私がビルドしたマシンにboostをインストールし、Bazelにそれを使用させようとすることです。とにかく標準のlibsをどのように取り扱うのかと思います。

編集: これは私の単体テストのコードです。ビューの

btest.cpp bazel年代(及びcc_test年代)から

#define BOOST_TEST_MODULE CompactStateTest 
#include <boost/test/included/unit_test.hpp> 

BOOST_AUTO_TEST_SUITE(Suite1) 
    BOOST_AUTO_TEST_CASE(Test1) 
    { 
     int x(0); 
     BOOST_CHECK_EQUAL(x, 0); 
    } 
BOOST_AUTO_TEST_SUITE_END() 

BUILD(bazelための "メークファイル")

cc_test(
    name = "btest", 
    srcs = ["btest.cpp",], 
    deps = ["@boost//:test",], 
) 
+0

これは少し不明ですが、広すぎるようです。あなたは何を持っているのですか? –

+0

質問を明確にするために質問を再入力します。要するに、私はBazelにBoost.UTFを追加したいと思いますが、唯一の例はUTFではないヘッダー専用のBoostライブラリのため、どのようにしてインターネット検索が失敗したのか分かりません。 – Dirich

+0

Boost.Testをヘッダとしてのみ使用する方法があります:[here](http://www.boost.org/doc/libs/1_64_0/libs/test/doc/html/boost_test/usage_variants.html#boost_test)を参照してください。 .usage_variants.single_header)。ヘッダーのルートを含む 'boost'パスをBazelに追加する必要があります。 – Raffi

答えて

1

点、試験は、非戻りバイナリでありますXML_OUTPUT_FILEで指定されたXMLファイルを書き込む可能性があります(必須ではありません)。env varは、テスト実行時にxmlテスト結果で設定します。

あなたの目標はdepsがすべて設定されたcc_testルールを記述することです。そのため、bazelはコンパイルして実行できます。そのためにはBoost.UTFのためにcc_libraryに依存関係を追加する必要があります。これは、hdrssrcs(および/またはdeps)の標準のベゼルcc_libraryになります。

local_repository(それはnew_の亜種です)が有用であるため、ローカルシステムにインストールされているファイルをどのように依存させるかについて次の質問があります。

+0

お試しいただきありがとうございます。私はboost.UTFのコンパイルにはいくつかのマクロスイッチが必要です。 – Dirich

+0

私のPSでlocal_repositoryをヒントしていましたが、システムバージョンを使用している場合、ヘッダがコンパイラのインクルードパス(CROSSTOOLに設定されている)に既にあるため、BUILDファイルを追加する必要はありません。 Boost.UTFに必要なlinkoptsを指定する必要があります。 – Dirich

+0

プリプロセッサと話す必要がある場合は、[definitions](https://bazel.build/versions/master/docs/be/c-cpp.html#cc_library.defines)を設定できます。 – mhlopko

関連する問題