cmake

CMake

CMake公式ダウンロードページよりインストールする.パスを通す.
MinGW(Minimalist GNU for Windows)の設定済みである必要がある.
関連
MSYS2
MinGW(Minimalist GNU for Windows)

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(7)
どのビルドシステム用にビルドするかの設定する.渡すことが可能な引数はデバイスやOSにより異なる.
-Gの後にダブルクォーテーション「“」で挟んで指定する.
↑で書いたように,MinGWならば

cmake .. -G "MinGW Makefiles"

Visual Studiの場合,ビット数,アーキテクチャの設定も可能.Windows10-64bitにインストールされたVisual Studio C++ 2017に合わせるとすると,

cmake -G "Visual Studio 15 2017" -A Win64

となる.

参考文献

  • cmake.txt
  • 最終更新: 2020/11/13
  • by yuqlid