0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Github ActionでBoostとGoogleTestを使用する

Last updated at Posted at 2021-10-17

個人的備忘録もかねてメモ

##想定環境

  • ubuntu (github actionのdocker image)

1. Boostの利用方法

Github action内のdocker imageでは、かつてboostをサポートしていたものの、現在では自分でインストールする必要がある。

linux/windows/mac osのそれぞれについて書かれているので従えばよい。linux(というよりubuntu)の場合で最も簡単そうなのは、apt install経由でインストールするものであり、

- name: install boost
- run: |
    sudo apt install -y libboost-all-dev

のように、.github/workflows/のyamlに記述すればよい。

2. GoogleTestの利用方法

利用方法というより、cmake周りでつまづいたことのメモ。

cmake経由でgoogletestをビルドすることができる。方法は本家ページに書いてあるように(引用)

cmake_minimum_required(VERSION 3.14)
project(my_project)

# GoogleTest requires at least C++11
set(CMAKE_CXX_STANDARD 11)

include(FetchContent)
FetchContent_Declare(
  googletest
  URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)

のようにcmakeに記述すればよい。

ただしこのままだとGTestのディレクトリが見つからないと言われる(find_packageで見つからないと言われる)。

解決策は、libgtest-devをインストールすることであった。これもyamlに追加する。

- name: install googletest
  run: |
    sudo apt install libgtest-dev

最後に、様々なところで言及されていることだが、googletestを利用するときは、pthreadとリンクさせる必要があるので、cmakeに記述する。ここが詳しい。

3. 走らせる(追記)

あとは従来のcmakeでのgoogletest実行と同じである。buildディレクトリ内でmakeをすることと仮定すると、yamlファイルは次のように書くことができる。

- name: build
   run: |  
        mkdir build
        cd build
        cmake ..
        make
        cd ..

このあとに実行するコマンドをかけばよい。

- name: googletest
   working-directory: ./build
      run: |
        make test

これで実行できる。

4. 最後に

当たり前のことかもしれないが、enable_testing()はプロジェクトルートのCMakeLists.txtに書く必要がある。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?