Android StudioでMakefileを利用する際の注意点
要点
Android StudioでMakefileを利用する場合、タブのスペース変換に注意しましょう。
.editorconfigでMakefileのインデントスタイルを設定することで解決できます。
詳細
Flutterで開発している際に、freezedなどのパッケージを利用していると以下のような生成コマンドを実行することがあると思います。
flutter pub run build_runner build --delete-conflicting-outputs
このコマンドを覚えられなかったため、以下のようなMakefileをプロジェクト直下に作成しコマンドの短縮化しました。
build-runner:
flutter pub run build_runner build --delete-conflicting-outputs
ところが、Android StudioのTerminal上で
make build-runner
を実行すると、以下のようなエラーで動きませんでした。
Makefile:2: *** missing separator. Stop.
原因は、Android Studioの設定でタブがスペースに変換されてしまうためでした。
Preference>Editor>Code Style>Other File TypesのUse tab character
Use tab characterにチェックを入れてもいいのですが、他のファイルのインデントがタブになるのは避けたい場合もあるかと思います。
そういった場合は、.editorconfigをプロジェクト直下に作成し、Makefileのみタブインデントになるように設定します。
以下は、一例です。
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
設定後Makefileを確認し、タブインデントになっていれば、
make build-runner
のようなmakeコマンドが実行可能になるかと思います。
最後に
長いコマンドや頻繁に使うコマンドはMakefileを利用することで、短縮できたりメモがわりになるかと思いますので、おすすめです。
Discussion