個人的備忘録もかねてメモ
##想定環境
- 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
に書く必要がある。