2013年10月16日水曜日

SystemCはじめました、その6

VerilatorとGoogle Testを組み合わせる話の続き。

いつのまにやら、UbuntuのレポジトリからGoogle Testのバイナリパッケージがなくなっていた。適当にググってみると、Google Testはいつからか、プロジェクト毎にビルドすることを推奨しているらしい。

ならば、Verilatorが吐き出すMakefileにGoogle Testをビルドしてもらおう。Verilatorを実行するディレクトリにGoogleが配布しているgtest-1.7.0.zipを展開する場合、以下のようにすればGoogle Testも含めて、test_xx.cppでxx.vをテストするバイナリをビルドしてくれる。

% unzip gtest-1.7.0.zip
% export SYSTEMC_CXX_FLAGS=-pthread
% verilator --sc xx.v --exe test_xx.cpp gtest-1.7.0/src/gtest-all.cc -CFLAGS '-isystem ../gtest-1.7.0/include -I ../gtest-1.7.0'
% cd obj_dir
% make -f Vxx.mk

環境変数SYSTEMC_CXX_FLAGSの設定は、使っているシェルに合わせて適宜読み替えること。.profileとか.cshrcとか.zshenvとかに書いてしまってもいい。

注意点として、libgtest-devのようなソースパッケージを入れている状態でオプションを間違えると、 libgtest-devのヘッダをインクルードしながらgtest-1.7.0.zipの.ccファイルをコンパイルしてしまったりする。このポストの時点でUbuntuのlibgtest-devは1.6.0なので、gtest-1.7.0.zipと混ぜるのはよろしくない。libgtest-devは切ってしまおう。

0 件のコメント:

コメントを投稿