ModdableSDKでmcconfigコマンドにより生成されるファイルの出力先はどこか?

投稿者: | 2020年7月1日

はじめに

ModdableSDKでプロジェクトをビルドするためにmcconfigコマンドを利用します。しかし、生成されたファイルはカレントディレクトリには出力されません。

普段は生成されたファイルを見る必要が無いので知らなくても問題無いのですが、新しいターゲットデバイス(M5ほにゃほにゃの新作とか)や、電子部品のドライバーを作成している時に、自動生成されたヘッダなどを確認したくなります。

ツール内部の処理なので、将来変わる可能性は大いにありますが、2020/7/1時点での場所を書き留めておきます。

ModdableSDKを、ある程度は知っていないと必要が無い事なので、細かい説明は省きます。

どこなのか

windows 10環境で説明しますが、macOS 環境でも同じ位置関係です。

ModdableSDKをインストールしたディレクトリが、D:\Projects\moddable
の場合は、D:\Projects\moddable\build\tmp以下にサブディレクトリが作成され、生成されたファイルが出力されます。

作成されるサブディレクトリの階層は、一定のルールに従って細かい階層に分かれますが、以下の通りです。

D:\Projects\moddable\build\tmp
  |
  +-<platform>
    |
    +-<subplatform>
      |
      +-[debug|release]
        |
        +-<カレントディレクトリ名>
          |
          +-生成された各種ファイル

mcconfig -m -d -p esp32のようにSubplatformが指定されなかった場合は、Subplatformの階層は作成されずPlatformの階層にdebugreleaseが作成されます。

カレントディレクトリがD:\projects\helloworldとして

D:\projects\helloworld> mcconfig -m -d -p esp32

ならば

D:\Projects\moddable\build\tmp\esp32\debug\helloworld

となります。

備考

末端が、カレントディレクトリ名の違いだけになるので、カレントディレクトリ名部分で別のプロジェクトと衝突を起こしますが、一時ファイルの置き場なので問題になることは少ないです。

複数の実装を検証するために、親ディレクトリだけ違う階層にしていたらファイルが混ざってよくわからないエラーに悩まされたくらいです。

今は、これらのtmp以下に生成されるファイルを、お掃除できるオプションがmcconfigコマンドに追加されているので、何か変かなとおもったらお掃除しておくのもいいかな。

例のファイルをお掃除するなら-t cleanオプションを追加してmcconfigを実行します。

D:\projects\helloworld> mcconfig -m -d -p esp32 -t clean