メニュー 閉じる

CMake projects in Visual Studio

C++ CMake tools for Windows コンポーネントは、IntelliSense とブラウジングの目的で CMake プロジェクト ファイル (CMakeLists.txt など) を直接消費するために Open Folder 機能を使用します。 Ninja と Visual Studio の両方のジェネレーターがサポートされています。 Visual Studioジェネレータを使用する場合、一時的なプロジェクト・ファイルを生成し、それを msbuild.exeに渡します。 しかし、インテリセンスやブラウジングのためにプロジェクトがロードされることはありません。 既存の CMake キャッシュをインポートすることもできます。

インストール

C++ CMake tools for Windows は、C++ によるデスクトップ開発および C++ による Linux 開発のワークロードの一部としてインストールされます。

詳細については、Visual Studio で C++ Linux ワークロードをインストールするを参照してください。

IDE 統合

ファイル >> Folder を選択すると、CMakeLists.C/CMake のあるフォルダーを開くことになります。

  • Visual Studio は、CMake スクリプトを表示および編集するコマンドを持つ CMake 項目をプロジェクト メニューに追加します。

  • Solution Explorer は、フォルダー構造とファイルを表示します。 CMake コマンド ラインは、CMake からの追加出力とともに、出力ウィンドウに表示されます。

  • バックグラウンドで、Visual Studio は IntelliSense、参照情報、リファクタリングなどを有効にするためにソース ファイルのインデックス付けを開始します。 作業中、Visual Studio はエディター内の変更とディスク上の変更を監視し、インデックスをソースと同期させます。

任意の数の CMake プロジェクトを含むフォルダーを開くことができます。 Visual Studio は、ワークスペース内のすべての「ルート」CMakeLists.txt ファイルを検出し、設定します。 CMake 操作 (設定、ビルド、デバッグ)、C++ インテリセンス、および参照は、ワークスペース内のすべての CMake プロジェクトで使用できます。

また、ターゲットによって論理的に整理したプロジェクトを表示できます。 Solution Explorer ツール バーのドロップダウンから [ターゲット] ビューを選択します。

アウト/ビルド/<config フォルダー内の CMake 生成の全出力を表示するには、Solution Explorer の上部にある [すべてのファイルを表示] ボタンをクリックします。

Visual Studio は CMakeSettings.json と呼ばれる設定ファイルを使用します。 このファイルにより、複数のビルド設定を定義および保存し、IDE でそれらを便利に切り替えることができます。 構成は、与えられたビルド タイプに固有の設定をカプセル化する Visual Studio の構成要素です。 この設定は、Visual Studio* が cmake.exe に渡すデフォルトのコマンドラインオプションを構成するために使用されます。 また、ここで追加の CMake オプションを指定し、好きな変数を定義することができます。 すべてのオプションは、内部変数または外部変数として CMake キャッシュに書き込まれます。 Visual Studio 2019 では、CMake 設定エディターが設定を編集する便利な方法を提供します。 詳細については、CMake 設定のカスタマイズを参照してください。

1つの設定、intelliSenseMode は CMake に渡されませんが、Visual Studio によってのみ使用されます。

すべての CMake プロジェクトで行うように各プロジェクト フォルダーで CMakeLists.txt ファイルを使用します。 ソース ファイルの指定、ライブラリの検索、コンパイラーおよびリンカー オプションの設定、およびその他のビルド システム関連の情報を指定できます。

デバッグ時に実行ファイルに引数を渡すには、launch.vs.json という別のファイルを使用することができます。 いくつかのシナリオでは、Visual Studio はこれらのファイルを自動的に生成します。 手動で編集することも、自分でファイルを作成することもできます。

注意

他の種類の Open Folder プロジェクトでは、さらに 2 つの JSON ファイルが使用されます。 CppProperties.json と tasks.vs.json です。 これらはどちらも CMake プロジェクトには関係ありません。

既存のキャッシュを開く

既存の CMake キャッシュ ファイル (CMakeCache.txt) を開く場合、Visual Studio ではキャッシュとビルド ツリーを管理しようとしません。 カスタムまたは好みのツールは、CMake がプロジェクトをどのように構成するかを完全に制御できます。 Visual Studio で既存のキャッシュを開くには、[ファイル] >> CMake を開くを選択します。 次に、既存の CMakeCache.txt ファイルに移動します。

開いているプロジェクトに既存の CMake キャッシュを追加することができます。 それは、新しい設定を追加するのと同じ方法で行われます。 詳細については、Visual Studio で既存のキャッシュを開く方法についてのブログ投稿を参照してください。

CMake プロジェクトの構築

CMake プロジェクトを構築するには、次の選択肢があります:

  1. [General] ツールバーで [Configurations] ドロップダウンを探します。 おそらくデフォルトで「x64-Debug」と表示されます。 好みの構成を選択して、F5 キーを押すか、ツールバーの [実行] (緑色の三角形) ボタンをクリックします。 Visual Studio ソリューションのように、プロジェクトは自動的に最初にビルドされます。

  2. CMakeLists.txt を右クリックし、コンテキスト メニューから [ビルド] を選択します。 フォルダー構造に複数のターゲットがある場合、すべてまたは特定の 1 つのターゲットだけを構築するように選択できます。

  3. メイン メニューから、[Build > Build All (F7 または Ctrl+Shift+B)] を選択します。 General toolbar の Startup Item ドロップダウンで CMake ターゲットがすでに選択されていることを確認します。

期待どおり、構築結果は Output Window と Error List に表示されます。

複数の構築ターゲットを持つフォルダにおいて、どのCMake ターゲットに構築を行うかを特定することができます。 CMake メニューの [ビルド] 項目または CMakeLists.txt コンテキスト メニューを選択して、ターゲットを指定します。 CMake プロジェクトで Ctrl+Shift+B を入力すると、現在アクティブなドキュメントをビルドします。

Debugging CMake projects

CMake プロジェクトをデバッグするには、優先設定を選択し F5 を押すか、ツールバーで実行ボタンをクリックします。 実行ボタンに「スタートアップアイテムを選択」と表示されている場合は、ドロップダウンの矢印を選択します。 実行するターゲットを選択します。 (CMake プロジェクトでは、「現在のドキュメント」オプションは .cpp ファイルに対してのみ有効です。)

実行または F5 コマンドは、前回のビルドから変更があった場合、プロジェクトを最初にビルドします。 CMakeSettings.json への変更により、CMake キャッシュが再生成されます。

launch.vs.json ファイルにプロパティを設定することにより、CMake デバッグ セッションをカスタマイズすることができます。 詳細については、CMake デバッグ セッションを設定するを参照してください。

Just My Code for CMake projects

MSVC コンパイラーを使用して Windows 用に構築する場合、CMake プロジェクトは Just My Code デバッグをサポートします。 Just My Code の設定を変更するには、ツール >>> 一般

vcpkg統合

vcpkg をインストールしていれば、Visual Studio で開いた CMake プロジェクトには vcpkg ツールチェーン ファイルを自動的に統合します。 つまり、CMake プロジェクトで vcpkg を使用するために、追加の設定は必要ありません。 このサポートは、ローカルの vcpkg インストールと、ターゲットとするリモート・システム上の vcpkg インストールの両方で機能します。

設定のフィードバックをカスタマイズする

デフォルトでは、エラーがない限り、ほとんどの設定メッセージは抑制されます。 ツール >> CMake.

CMakeLists.txt ファイルの編集

Solution Explorer でファイルを右クリックし「開く」を選択して CMakeLists.txt を編集することができます。 ファイルに変更を加えると、黄色のステータス バーが表示され、IntelliSense が更新されることが通知されます。 更新操作をキャンセルする機会も与えられます。 CMakeLists.txt の詳細については、CMake ドキュメントを参照してください。

ファイルを保存するとすぐに、構成ステップが自動的に再実行され、[出力] ウィンドウに情報が表示されます。 エラーと警告は、[エラー リスト] または [出力] ウィンドウに表示されます。 エラー リスト内のエラーをダブルクリックして、CMakeLists.txt 内の問題のある行に移動します。

CMake configure ステップ

CMakeSettings.json または CMakeLists.txt ファイルに大きな変更を行うと、CMake configure ステップは Visual Studio で自動で再実行されます。 configure ステップがエラーなしで終了した場合、収集された情報は C++ IntelliSense と言語サービスで利用できます。

CMake キャッシュ エラーのトラブルシューティング

問題を診断するために CMake キャッシュの状態に関する詳細な情報が必要な場合、[プロジェクト] メイン メニューまたは Solution Explorer の CMakeLists.txt コンテキスト メニューを開き、これらのコマンドのいずれかを実行します:

  • View Cache は build root folder から CMakeCache.txt ファイルをエディターに表示します。 (ここで CMakeCache.txt に加えた編集は、キャッシュを消去するとすべて消去されます。

  • Open Cache Folder は、ビルド ルート フォルダーへのエクスプローラー ウィンドウを開きます。

  • Clean Cache は、次の CMake configure ステップがクリーン キャッシュから開始するようにビルド ルート フォルダーを削除します。

  • Generate Cache は、たとえ Visual Studio が環境を最新にしたものと見なす場合でも生成ステップを実行するよう強制します。

Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Run CMake from the command line

If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Run the appropriate vsdevcmd.bat (x86/x64). For more information, see Building on the Command Line.

  2. Switch to your output folder.

  3. Run CMake to build/configure your app.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です