CMake + nmake プロジェクト
概要
CMake + nmake(MSVC) + VSCode + DirectXのプロジェクトサンプルを作ってみた
理由
今日、VSCodeで色んな言語のプラグインが出ておりVSCodeで色んな言語の開発ができるようになってきている。例えばTypeScript/JavaScriptは言わずもがな、Java, Scala, C#, Ruby, Python, Go, Rustなどなど… 言語ごとにIDEを変えるのは操作を覚え直して大変だし、VSCodeはエディタとして快適なので、あらゆる開発環境をVSCodeにまとめたいと思った。そこでVisual StudioからVSCodeに引っ越ししてみようと思い立ったのでした。
構成
汎用的なCMakeプロジェクトは以前作ったことがあって、WindowsでもLinuxでも動くようなものは作ったことがある。今回はVisual Studioからの移行ということでWindowsに特化して見ようと思った。僕はDirectXを書きたい人なので、VSCodeでDirectXのプロジェクトを簡単にビルド&実行できるところまでをゴールとした。WindowsのCMakeはデフォルトのジェネレーターにVisual Studioを指定している。ビルドするために一々Visual Stuidoを起動するのではVSCodeだけで完結しているとは言えないため何らかのCLI環境でビルドしたいと思った。というわけでジェネレーターの中だとnmakeが丁度良かった。
setup.batでvcvars64.batを実行しパスを通し、buildディレクトリをクリーンして、build.batを呼び出す。build.batはcmakeを実行してnmakeを実行してエラーがなければ実行ファイルを呼ぶようにしている。
今後
Debug, Releaseごとのオプションが甘かったり、まだまだ指定してないオプションがあると思ってるし、もっと汎用的なbatやCMakeLists.txtは書けると思う。今後の課題にする。
また、今後Visual Studioを使わないかと言うとそんなことはなくて、並列処理のデバッグやDirectXのグラフィックスのデバッグや、Just My Code、やWatchの表示などなどデバッグに関してはVisual Studioはかなり優秀なので、簡単なデバッグならVSCodeのままでも良いんですけど、複雑なデバッグがしたくなったときはジェネレーターにVisual Studioを指定してslnファイルを生成してVisual Studioでデバッグすると思います。