公式ドキュメントには,CMakeを利用している既存のプロジェクトにGoogle Testを組み込む方法が書いてあるのですが,何をしているのかパッと分からなかったので,じっくり読んでみました.
まず,次のような構造を想定します.
- CMakeLists.txt
- srcとtestをadd_subdirectoryで追加
- src (プロジェクトのソースコード)
- test
- GoogleTest.CMakeLists.txt.in
- CMakeLists.txt
- build (ビルド用フォルダ,バージョン管理外)
GoogleTest.CMakeLists.txt.inの内容は,ドキュメントにあるCMakeLists.txt.inと同じです.
testフォルダのCMakeLists.txtの1行目,configure_fileが解釈されると,次のような状態になります.
- build
- googletest-download
- CMakeLists.txt
ExternalProject_Add(googletest
... 省略 ...
SOURCE_DIR "buildへの絶対パス/googletest-src"
BINARY_DIR "buildへの絶対パス/googletest-build"
)
次に,execute_processにより,ルートのCMakeLists.txtに対してビルド設定を生成する際に,googletest-download内のCMakeLists.txtが実行され,フォルダが次のような構造になります.
- build
- googletest-download
- googletest-src
- googletest-build
これで,googletestを組み込む準備ができたので,そのあとで単体テスト用のターゲットをadd_executableして,gtest_mainとリンクし,add_testでテストに登録しているわけです.
取り合えず,これでプラットフォーム気にせずにGoogle Testを導入しつつ,コードが書けそう.
0 件のコメント:
コメントを投稿