chottoshitahanashi’s diary

基本的に間違ったことばかり書いてるブログ。検索ひっかかるな

ARDUINO_AVR_UNOとかARDUINO_AVR_ATTINYX5とかのありか

昔の自分のコードで #ifdef ARDUINO_AVR_ATTINYX5 とやってるのがあったんでどこで定義されてるのかと小一時間探したがない。
ググったら同じような疑問持ってる人がいて答えがあった。
Arduinoのライブラリでよく見るボード種別に応じてコンパイル内容を変えるマクロ定義文字列の正体 - Qiita

C:\Users\{$USERNAME}\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.4 の
(↑AppDataは隠しフォルダ)
boards.txtの中に
uno.build.board=AVR_UNO

てことで動的に生成してるらしい。言いたくないけどArduinoって変態IDEもそうだけどソフト側いけてないよね(言っちゃった)。