CMake プリセット
CMake プリセット(英語)は、次の 2 つのファイルを使用して CMake オプションを構成および共有する方法です。
プロジェクトごとのビルド用の CMakePresets.json 。 このファイルは VCS 経由で共有できます。
開発者自身のローカルビルド用の CMakeUserPresets.json 。 このファイルは VCS にチェックインしないでください。
CMakePresets.json と CMakeUserPresets.json はどちらも同じ形式であり、プロジェクトのルートディレクトリに配置する必要があります。
CMake プロファイル は CMake プリセットと多くの設定を共有しており、VCS を通じて共有することもできます。 主な違いは、プロファイルが CLion の ツールチェーンを参照し、その中には CMake プリセットに存在せず必要もない情報(デバッガーや環境設定など)が含まれている点です。
プリセットのインポート
プロジェクトを開くと、CLion はプロジェクトルートにある CMakePresets.json および CMakeUserPresets.json ファイル内のすべての ビルドおよび 構成プリセットを検出します。 デフォルトでは、それらはすべて読み取り専用モードで CMake プロファイル に自動的にロードされます。
ロードされたプリセットを表示するには、 に移動するか、通知ダイアログの 表示 リンクを使用します。

これまでにロードして有効化していない限り、すべての新しいプリセットはデフォルトで無効化されています(CLion は名前で一致させます)。
以前にロードされたプリセットはすべて、 CMakePresets.json または CMakeUserPresets.json ファイルに存在しない場合は削除されます。

プリセットを手動でロードする
すでに開いているプロジェクトのプリセットをロードすることもできます。
(Ctrl+Shift+A )を呼び出し、 CMake プリセットをロードするを検索します。
CLion は、既存のビルドプリセットのリストを含むポップアップを表示します:

プリセットを選択し、 Enter を押します。
Ctrl または Shift を押し続けると、複数のエントリを選択できます。 CLion は、選択したすべてのプリセットをロードします。
プロジェクトを開く場合と同様に、手動でロードしたプリセットは、読み取り専用モードで CMake プロファイルにインポートされます。 で見つけることができます。
プリセットプロファイルを有効にする
に進みます。
目的のプロファイルを選択し、 プロファイルを有効にする チェックボックスを設定します。

プリセットの編集
インポートしたプリセットを編集するために使用できるオプションは 2 つあります。
プリセットベースの CMake プロファイルのコピーを編集する
に進みます。
目的のプロファイルを選択し、
をクリックするか Ctrl/⌘ + D を押してください:

コピーしたプロファイルの設定を調整します:

エディターで対応する JSON ファイルを変更する
対応する json ファイルを開いて編集を開始します。 CLion は入力中の変更をトラックし、問題ビューでエラーについて通知します:

エディターでプリセットファイルを変更したり外部で変更した場合、変更の再読み込みを提案する通知が表示されます:

CLion で変更をサイレントに再読み込みしたい場合は、 自動再ロードの有効化 をクリックします。 これにより、プロファイル設定の対応するチェックボックスが設定されます:

ツールチェーンの変更
デフォルトでは、ロードされたプリセットはデフォルトの CLion ツールチェーン にリンクされます。
構成済みのツールチェーンの 1 つを設定するには、 configure プリセットのベンダー固有のフィールドを変更します。
例: 次のコードを使用して、Clang10 というツールチェーンに切り替えます。
その結果、Clang10 ツールチェーンがロードされたプリセットに割り当てられます。

Windows では、 MSVC ツールチェーンを使用している場合、 configure プリセットのアーキテクチャとツールセットのプロパティが CMake オプションにもフェッチされます。

条件サポート
CLion は、プリセットをフィルタリングするために、 CMakePresets.json および CMakeUserPresets.json ファイルの condition フィールドをサポートしています。 サポートされているのは equals および notEquals タイプのみであることに注意してください。
プリセットをプラットフォーム別にフィルタリングする方法の例を次に示します。
プラットフォームによるフィルタリングを構成すると、対応するプリセットは、それが有効になっているプラットフォームの プリセットプロファイルリストにのみ表示されます。
CMake のドキュメント(英語)の condition フィールドオプションの詳細について説明します。
Python 統合
プロジェクトに Python インタープリターが設定されている場合は、CMake プリセットに渡すこともできます。 この場合、プリセット属性に enablePythonIntegration フラグを明示的に設定する必要があります。 次に例を示します。
vendor フィールドが設定されると、Python インタープリターが適切な CMake プロファイルに渡されます。