🔨

CMakeでコマンドラインからコンパイラを指定する方法

2024/09/18に公開

CMakeでコマンドラインからコンパイラ種別を指定する方法を調べたので書いておきます。

結論

-DCMAKE_CXX_COMPILER 引数と -DCMAKE_C_COMPILER 引数で指定します。

動機

現在の私の開発はVS Codeベースであるため、CMakeのツールチェーンの選択はCMake拡張機能のkit選択から簡単に行えます。

しかし、場合によってはコマンドラインからキットを指定したい場合もあります。

特にGitHub Actionsではコンパイラを指定する際にコマンドラインから指定しなければなりません。都度その方法を調べるのも泥臭いですのでここに書いておくことにしました。

指定の仕方

CMakeによるコンフィギュレーション時に、引数として-DCMAKE_CXX_COMPILER と -DCMAKE_C_COMPILERを指定することで、コンパイラを指定できます。

具体例としてGCCの場合は以下のようになります。

cmake ..  -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc

これがClangの場合は以下のようになります。

cmake ..  -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang

またMSVCの場合は以下のようにします。

cmake ..  -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl

これらは実際にGitHub Actionsで使用しているコマンドです。ファイルパスまで指定すればGCCのバージョンを直接使用するといったことも可能です。

Discussion