開発時やリリース時など、用途別のプロジェクト構成 (ビルド構成) を作成しました。
プロジェクト構成を作成することで、ビルド成果物の出力先や適用するsdkconfigの選択などができます。
以下を参考にしました。
- https://docs.espressif.com/projects/vscode-esp-idf-extension/en/latest/additionalfeatures/project-configuration.html
- https://productionesp32.com/posts/what-is-skdconfig-defaults/
- https://github.com/espressif/esp-idf/tree/v5.5.1/examples/build_system/cmake/multi_config
以下の環境です。
- ESP-IDF v5.5.1
- VSCode
以下のプロジェクト構成を作ります。
- debug 構成
ビルド成果物の出力先は "build_debug" とする
sdkconfig は sdkconfig.default のみ適用する - release 構成
ビルド成果物の出力先は "build_release" とする
sdkconfig は sdkconfig.default , sdkconfig.release を適用する
※ プロジェクト構成にて行えることは様々ありますが、参考1 を参照してください。
※ sdkconfig.release では、リリース時に不要なデバッグログ・その他の機能を無効化など、バイナリサイズを小さくするような設定を行っています。(https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-guides/performance/size.html が参考になります)
ビルド構成の作成
VSCode のコマンドパレットから "ESP-IDF: Open Project Configuration" を実行します。

"Enter new profile configuration name" に作成するプロジェクト構成の名前をを入力します。
debug と release の 2 つを作ります。
debug 構成
- "Build Directory path" に出力先 "build_debug/" を入力します。
- "sdkconfig file path" に "build_debug/sdkconfig を入力します。sdkconfig の出力先を変更しないと、プロジェクトのルートディレクトリに出力されてしまいます。
release 構成
debug 構成と同様に、以下を行います。
- "Build Directory path" に出力先 "build_release/" を入力します。
- "sdkconfig file path" に "build_release/sdkconfig" を入力します。
"sdkconfig defaults" に "sdkconfig.defaults"、"sdkconfig.release" を追加します。
(※ 参考2 より、sdkconfig.default -> sdkconfig.release の順に適用されます)
プロジェクト構成の保存
ページ上部の Save ボタンを押して保存します。
プロジェクトルートに esp_idf_project_configuration.json というファイルが作成されていると思います。
プロジェクト構成の選択
選択中のプロジェクト構成はステータスバーに表示されています。未選択の場合は "No Configuration Selected" と表示されます。プロジェクト構成を変更する場合は、この表示をクリックします。

もしくは、コマンドパレットから "ESP-IDF: Select Project Configuration" を行います。

余談: CIでビルドする場合
コマンドラインのビルドでは esp_idf_project_configuration.json は使用されないようです。
上記を参考に、ここで作成したような同じ設定を別ファイルとして作成しています。プロジェクトのルートに以下を作成しました。
- profiles/debug
- profiles/release
作成したファイルは以下のように使用します。ファイルの内容がそのまま idf.py の引数に使用されます。
$ idf.py @profiles/debug build
※ 上記のリポジトリにてタグを v6 に変更して同じサンプルを参照すると、また別の方法になるようです






