この質問に対する良い答えを探していたのは久しぶりです。
通常、任意のArduinoプロジェクトが最も単純なプロジェクトに含まれます:
- メインソースコードファイル
MyProject.ino
- プロジェクト固有のライブラリ(
MyProjectLibrary1.h
、MyProjectLibrary1.cpp
...) - サードパーティライブラリ(通常は無料のオープンソース、Arduinoライブラリディレクトリに手動で追加)
- 回路図、PCBダイアグラム
- ドキュメンテーション
- ...
これにより、1つのプロジェクトのコード全体とドキュメントをソースコード管理(Subversion、Git、GitHubなど)の下に保持することが難しくなります。
プロジェクトのソース管理の管理とは、サードパーティのライブラリを含むプロジェクトで使用されるすべてのファイルのバージョンを管理することを意味します。
ここで、1つのプロジェクトについて、次のディレクトリ構造を定義する必要があります。
- 上記のすべてのプロジェクトファイルが含まれます
- ソースコード管理ツールに完全にコミットできます(サードパーティの依存関係を含む)
- ハードドライブのどこでもチェックアウトし、そこからプロジェクトをビルドできます(Arduino IDEによって課される単一の場所である必要があります)
- 自己完結型のアーカイブに圧縮して、友人ができるだけ簡単に構築できるように送信できます(追加の手動ダウンロードは不要です)
Arduinoプロジェクトで特に注意が必要なのは、外部ライブラリの依存関係の管理です。Javaプロジェクトの開発者はそのためのMavenリポジトリを持っているため、すべての外部開発を管理するのに非常に役立ちます。ただし、Arduinoライブラリに対応するシステムはありません。
他のArduinoプロジェクトメーカーが自分のプロジェクトでこれらの側面をどのように扱っているかを知りたいと思います。
また、IDEを含め、開発プロセスを変更することもできます(現在、ほとんどの場合、ArduinoプラグインでEclipseを使用しています。その後、プロジェクトがArduino IDEで直接動作することを確認しています)。