Qt Creator 12 - CMakeアップデート

本稿は「Qt Creator 12 - CMake Update」の抄訳です。

Qt Creator 12における新しいCMakeの機能と修正事項をご紹介します。

CMakeデバッガー

CMakeはバージョン3.27以降、インタラクティブなデバッガーをサポートしています。

Qt Creator 12では、Debug Adapter Protocolのサポートが追加され、最初のサポートされるケースの一つがCMakeデバッガーです。

Qt Creator 12 - CMake Debugging

CMake プロファイラ

以前、CMake 3.18の新機能記事でCMakeプロファイラについて言及しました。Qt Creator 12では、Chrome Trace Format Visualizerとの透明な統合が行われています。

Qt Creator 12 - CMake Profiler

ホバーヘルプ

Qt Creatorは以前からCMakeの関数に対するF1サポートを提供してきました(ただし、CMakeとともにCMake.qchをインストールする必要があります)。

Qt Creator 12では、この機能がさらに洗練されています。F1はコマンドだけでなく、変数、プロパティ、ポリシー、環境変数、およびCMakeの検索とインクルードモジュールにも対応します。

さらに、reStructuredText rstヘルプファイルも解析され、ホバーヘルプのツールチップとして表示されます。これは、上記のすべてのケースにおいて、コード補完を行う場合にも適用されます。

Qt Creator 12 - CMake Hover Help

Qt Creatorは以前、プロジェクト内のソースファイルに限定された1つのナビゲーション(F2)ケースのみをサポートしていました。

Qt Creator 12では、以下の項目について拡張されました。

  • 関数とマクロとオプション
  • プロジェクトのターゲット
  • CMake独自の検索とインクルードモジュール
  • ローカル変数(set、listによって作成されたもののみ)
  • インポートされたターゲット

これらの機能を使用するためには、正常なプロジェクトの設定が必要です。

Qt Creator 12 - CMake Navigation

スニペット

Qt CreatorはCMakeのコードスニペットを表示する機能を持っていましたが、実際にはどのスニペットも同梱されていませんでした。Qt Creator 12には、5つのCMakeコードスニペットが付属しています。

Qt Creator 12 - CMake Snippets

コード補完

Qt Creator 12は、KSyntaxHighlightingエンジンのメタ情報を使用して、CMakeコマンドのコード補完特有の引数を提供します。

例えば、set_source_files_propertiesでは、ソースファイルのプロパティのみが提案され、テストやターゲットのプロパティは提案されません。

以下のCMake固有のトリガートークンは以下の通りサポートされています:

  • 変数用の ${
  • ジェネレータ式用 $<
  • 環境変数用 $ENV{

Qt Creator 12 - CMake Completion

ローカル CMake Find パッケージ

外部依存関係を持つCMakeプロジェクトでは、モダンなCMakeのアプローチは、インポートされたターゲットを公開するFind<package>.cmakeモジュールを使用することです。CMakeはこれについてのドキュメントをA Sample Find Moduleで提供しています。

これらのFindモジュールは通常、${CMAKE_CURRENT_SOURCE_DIR}/cmakeディレクトリに配置され、これはCMAKE_MODULE_PATHリスト変数に追加されます。

Qt Creator 12では、これをコードスニペットとして提供しています。

この動作を示すために、Using libclang to Parse C++ (aka libclang 101) の例を使用しました。なお、Windowsのllvm.orgリリースにはCMakeの検索モジュールが含まれておらず、単純にfind_packageを使用してlibclangライブラリを見つけることはできません。詳細については、#47222を参照してください。

なお、C:\Program Files\LLVMの下には、libclangのヘッダーファイルとライブラリを提供するincludeディレクトリとlibディレクトリがあります。

Qt Creator 12 - CMake Local Packages

エラー/警告メッセージのサポートの向上

Qt Creator 12では、複数行のエラーメッセージ/警告メッセージが表示され、呼び出しスタックが適切な順序で表示されます。

Qt Creator 12 - CMake Error reporting

出力メッセージ

Qt Creator 12では、必要に応じてCMakeのメッセージのみをフィルタリングできるように、すべての出力メッセージの先頭に[cmake]が付けられます。

Qt Creator 12 - CMake Output

cmake-format ローカル設定ファイル

そして最後に、Qt Creator 12では、ローカルな.cmake-format[.py|json]設定ファイルをサポートしています。


Blog Topics:

Comments