👌

mruby/cをCMakeでビルドできるようにしてみた

2023/04/03に公開

需要があるかは知らないがmruby/cをCMakeでビルドできるようにしてみた。
https://github.com/k-mana/mrubyc/tree/cmake

なぜCMakeなのか

  • RaspberryPi PicoのSDKはCMakeを前提に作られているのでCMakeに対応すると使いやすい
    • 現状のだと必要なファイルを取り出して再構築する必要がある
  • Visual Studioでもビルドできるようにしたい
    • プロジェクトを作ればいいのだが毎度作るのは手間

なおWidnowsのHALはないので現状ビルドできない。手元では用意してあるがそれは別のお話。

ビルドの仕方

HALがデフォルトのposixの場合

cmake -S . -B build
cmake --build bulid

HALがrp2040(RaspberryPi Pico)の場合

cmake -S . -B build -DMRBC_USE_HAL=rp2040 -DMRBC_REQUIRE_ALIGNMENT=32 -DMAX_REGS_SIZE=256 -DMAX_SYMBOLS_COUNT=500
cmake --build build

RaspberryPi PicoでLチカ

https://github.com/k-mana/mrubyc-rp2

ソースコードの取得

git clone https://github.com/k-mana/mrubyc-rp2.git --recursive

ディレクトロリ構造

変数の定義が他に影響しないようにmrubycを一段ラップしている。

.
├── CMakeLists.txt
├── blink.c
├── mrubyc
│   ├── CMakeLists.txt
│   └── mrubyc
└── pico_sdk_import.cmake

ビルド

export PICO_SDK_PATH=<pico-sdkのパス>
cmake -S . -B build
cmake --build build
ls build/blink.uf2

おしまい。

Discussion