久しぶりにAzure Sphereのサンプルコードをビルドしてみたところ、CMakeでAPI set "4" is not valid.というエラーが発生しました。

なんだろう???手元のサンプルコードを壊してしまったかな?
気を取り直して、githubからクローンし直してみても状況変わらずorz
うーむ、ちゃんと調べて見ることに。
2> [CMake] CMake Error at C:/Program Files (x86)/Microsoft Azure Sphere SDK/CMakeFiles/AzureSphereToolchainBase.cmake:38 (MESSAGE): 2> [CMake] API set "4" is not valid. Valid API sets are: ["3", "3+Beta1909"]
API setの"4"は不正で、3か3+Beta1909を使えと言っています。
サンプルコードAPI setは、CMakeSettings.jsonで指定していて、4です。4を使おうとしているのは意図通り。

では、有効なAPI setsの方はというと、、、
エラーメッセージをよく見ると、AzureSphereToolchainBase.cmakeの38行目が関係しているようで、このファイルを見ると、なんとなくSDKのSysrootsフォルダからAPI setを取ってきていることがわかります。

SDKのSysrootsフォルダを見ると、3と3+Beta1909ってことで、まぁエラーになるわねといった感じ。

API setとAzure Sphere OSの対応は、ちょっと分かりにくいのですがここに書かれていて、
19.09で3。20.01で4。
あれ??手元の環境、20.01にアップグレードし忘れ!?
そんな凡ミスか??と思いましたが、azsphereコマンドで確認すると20.01になっていました。

うむむ、、、なんだろう?
もしかして、SDKがアップデートされているのでは?と思い、Azure Sphere SDK for Visual Studioからダウンロードしてみたところ、ファイルバージョンが上がっていました。
左が以前にダウンロードしたSDK、右が今日ダウンロードしたSDK。

では、今日ダウンロードしたSDKをインストール。

インストールした結果、4のフォルダができました。

azsphereコマンドのバージョンも、しれっと20.1.6.56047から20.1.6.56107に上がっていました。

無事、サンプルコードをビルドできるようになりました。

今回調べていて気付いたのですが、、、
docsからAzure SphereのRelease Notesが消えている、、、ミスかな?それとも意図的?
何気にSDKがマイナーバージョンアップしてたし。
組み込み用途なので、、、バージョンが上がったこと、そのときの差異はきっちりと情報公開してもらいたい。