---
# System prepended metadata

title: Albireo farm pi

---

# Albireo farm pi

## Build
```
git clone https://github.com/41b1r30/farm-pi
cd farm-pi
git checkout experiment/water_temperature
git submodule update --init
cmake
ninja
```
## Run
```
sudo ./main
```
### Develop
#### CMake option
- `-B <path-to-build>`
    ビルドディレクトリの指定
    デフォルトはカレントディレクトリ
- `-S <path-to-source>`
    ソースディレクトリの指定
    デフォルトはカレントディレクトリ
- `-G <generator-name>`
    ジェネレータの指定
    デフォルトはGNU Make
    NinjaやXCodeなどを指定することが可能
- `-D <var>[:<type>]=<value>`
    CMakeの変数の指定
    いくつかの変数がデフォルトで用意されている
    - BUILD_SHARED_LIBS
        ライブラリを共有ライブラリでビルドする
    - CMAKE_BUILD_TYPE
        ビルドタイプの指定
        Debug, Releseなどを指定可能
    - CMAKE_EXPORT_COMPILE_COMMANDS
        compile_commands.jsonを出力する
        clangdやclang-tidyなどで利用する
    - CMAKE_C_COMPILER
        Cのコンパイラの指定
        gcc, clangなど
    - CMAKE_CXX_COMPILER
        C++のコンパイラの指定
        g\+\+, clang\+\+など
    - CMAKE_C_COMPILER_LAUNCHER
        Cのコンパイル時ランチャーの指定
        ccacheなど
    - CMAKE_CXX_COMPILER_LAUNCHER
        C++のコンパイル時ランチャーの指定
        ccacheなど
    - CMAKE_C_FLAGS
        Cのコンパイル時オプションの追加
    - CMAKE_CXX_FLAGS
        C++のコンパイル時オプションの追加
    - CMAKE_RUNTIME_OUTPUT_DIRECTORY
        ランタイムオブジェクトの出力ディレクトリの指定
    - CMAKE_LIBRARY_OUTPUT_DIRECTORY
        共有ライブラリの出力ディレクトリの指定
    - CMAKE_ARCHIVE_OUTPUT_DIRECTORY
        静的ライブラリの出力ディレクトリの指定
#### Format
```
clang-format --style=file -i <file>
cmake-format -i <file>
```
#### Lint
```
clang-tidy <file>
cmake-lint <file>
```
