ここ最近、RasPi Picoで遊んでいます。
なかなか面白いのですが、だんだんと感触をつかんできたところでディレクトリ構成が気になってきました。公式リポジトリであるpico-sdkで紹介されているのはフラットな構造です。つまり何から何まで全部がルートディレクトリに置いてあります。
これは面白くありません。メインプログラムはsrcディレクトリに、アルゴリズムはsrc/algorithmに、ハードウェアに近いコードはsrc/driverに置きたいところです。ところが、ディレクトリ構造を変えた途端、CMakeが暴れ馬のように手に負えなくなってしまいました。
RasPi Pico SDKを使ったプログラム開発は、CMakeの難しさとpico-sdkの決め打ちの組み合わせのおかげでディレクトリ構成を変更するときにちょっとしたノウハウが必要になります。これが到底暗記できそうにありません。覚えてもすぐ忘れそうです。
そこで、メモ代わりにサンプル・プログラムを書いてgithubのリポジトリとして公開しました。pico-sdk-cmakeは「C/C++言語を使ってpico-sdkによる開発を行いCMakeでビルド管理を行いたい人」のための解説をまとめたリポジトリです。このリポジトリは、4つのブランチからなります。
ブランチ | 説明 |
---|---|
basic | すべてのソースコードがプロジェクト・ルートに置いてあるディレクトリ構造。 |
src | すべてのソースコードがsrcサブディレクトリに置いてあるディレクトリ構造。 |
subdir | アルゴリズムをsrc/algorithmに分離したディレクトリ構造。 |
subdir_sdk | さらにドライバをsrc/driverに分離したディレクトリ構造。 |
私が躓いたのは subdir_sdk ブランチで解説している構成です。CMake INTERFACE ライブラリという、ちょっと特殊なビルド方法を使っています。