CMake
CMake公式ダウンロードページよりインストールする.パスを通す.
MinGW(Minimalist GNU for Windows)の設定済みである必要がある.
関連
MSYS2
MinGW(Minimalist GNU for Windows)
WindowsでMinGW用MakefileをCMakeで作りたい
Macの方はすなりできたけどWindowsのほうはそうはいかなかった
たしか以前Rust用にVSのtoolchainを入れた関係か,標準でCMakeが見に行くコンパイラがどうしてもVS(Visual Studio)になる.MinGWを入れてあるので,GNUMakeで生成してほしい.
しかしどうやらやっているとstm32の開発環境として追加で入れたBuildToolsの中にあるsh.exeが邪魔な存在ということがわかった.
sh.exeまでのパスを通さなければいい話だが,同じディレクトリにmake.exeも入ってるから結構ややこしい問題になってしまった.
MinGWのMakefileの場合,PATHにsh.exeが存在してはならない
MinGW windows path problem
[CMake] MinGW and sh.exe
MinGW sh.exe must NOT be in your path
out of sourceでCMakeするとする.ソースディレクトリに「build」フォルダを生成し,その中でMakefileなどを生成する.
このとき,PATHにある「sh.exe」を強制的に無視するオプションとして-DCMAKE_SH=“CMAKE_SH-NOTFOUND”
を追加する.
cmake .. -G "MinGW Makefiles" -DCMAKE_SH="CMAKE_SH-NOTFOUND"
CMakeリファレンス
cmake-generators
cmake-generators(7)
どのビルドシステム用にビルドするかの設定する.渡すことが可能な引数はデバイスやOSにより異なる.
-G
の後にダブルクォーテーション「“」で挟んで指定する.
↑で書いたように,MinGWならば
cmake .. -G "MinGW Makefiles"
Visual Studiの場合,ビット数,アーキテクチャの設定も可能.Windows10-64bitにインストールされたVisual Studio C++ 2017に合わせるとすると,
cmake -G "Visual Studio 15 2017" -A Win64
となる.