CMakeProjectManager2は、CMakeビルドシステムでの作業をサポートする元のQt Creatorプラグインのフォークです。 このプロジェクトの不振な歴史は2011年から続いています(私の最初のブログ投稿: htrd.su/wiki/zhurnal/2011-03-24_14.49_qt_creator_i_cmake_-_prodolzhenie 、2012年からの2番目の更新: htrd.su/wiki/zhurnal/2012/ 10/17 / cmakeprojectmanager2 _-_ poslednie_izmenenija )。 それ以来、新しいものは何も追加されていません。 Qt Creatorの最新バージョンとの互換性が提供され、リポジトリは(実験として)GitHubに移動しました。
しかし、昨日と今日のために、さらにいくつかの変更が追加されました。これがHabréのプロジェクトに言及する理由でした。
したがって、最初の変更で追加された機能はそれほど多くありません。つまり、
- プロジェクトファイル構造は、.cbpファイルからではなく、プロジェクトツリーをスキャンすることによって取得されます。 オプションとして、大きなプロジェクトでは遅くなることがありますが、一方で、ツリーの再読み込みは毎回行われませんが、CMakeLists.txtを変更するとき、またはファイルを追加、削除、名前変更するとき(これは、基本プラグインにはありません)
- Qt Creatorからプロジェクトツリーに新しいファイルを直接作成できるようになりました
- これでファイルの名前を変更できます
- これで、ディスクからファイルを削除できます
次に、CMakeの起動をバイパスして.cbpファイルを生成するプラグインにCMakeFiles.txtの解析のサポートを追加するというアイデアが生まれました。 しかし、(先を見据えて)このアイデアはアイデアのままでした:パーサーとトークナイザーはCMakeソースコードに基づいて別々に書かれましたが、開発は別のねじクラッシュと共に忘却に沈みました。 プラグインへの統合すらできませんでした。
2番目の変更パッケージは2012年に追加され、次の機能と修正が含まれています。
- アセンブリプロファイルごとに、CMakeに入力したパラメーターが保存されるため、次回[CMakeを実行]を選択したときに、開始したパラメーターを覚えておく必要がなく、アセンブリプロファイルを管理しやすくなります。 アップストリームからの最新機能:CMakeのパラメーターのグローバル履歴を保存するとともに、かなり強力なメカニズムが得られます。
- 上記の情報を使用して、ソースツリーを変更(追加、削除、名前変更)するときに、バックグラウンドでCBPファイルとアセンブリツリーの更新を開始できるようになりました。これは、グロビングを使用する場合に特に重要です。
- 最初のオプションと比較して、プラグインを使用するとき、特にプロジェクトツリーに多くの補助モジュール、一時的なC / C ++コードがある場合、メモリ消費を大幅に削減することがわかりました。
このバージョンから、ファイルのリストがグロビングに基づいている場合、つまり、CMakeを非常に快適に使用できます。 リストがマスクで指定されている場合、次のようになります。
# UTILS file(GLOB_RECURSE UTIL_SOURCES "../util/*.cpp") file(GLOB_RECURSE UTIL_HEADERS "../util/*.h" "../util/*.hpp")
Qt Creatorを介してファイルを追加すると、キャッシュが自動的に更新され、ファイルがツリー、ビルドシステム、およびC ++パーサーに表示されます。
それ以降、コードベースはアップストリームとのみ同期しました(実際、それに関する大きな変更はありません)。 最初のバージョンでは、マージリクエストを提出しようとしましたが、CMakeLists.txtに何らかの形で記述されたファイルではなく、すべてのファイルが表示されるため、ハッキングされました。 その後、彼は試しをやめました。 変更の一部またはすべてを突き出したい人は大歓迎です!
しかし、Qt Creatorの腸からCMakeプロジェクトをクロスコンパイルすることが必要になったことがありました。 これを行うのは難しくありません。ツールチェーンファイルを作成し( 詳細 )、特別なパラメーターを介してcmakeプロセスに渡します。 毎回手でパラメーターを書くだけでは不便です。
そのため、今日リポジトリに登場した変更がありました。
- アセンブリの種類を選択する機能が追加されました
- ツールチェーンを割り当てる機能が追加されました
はい、多くの変更はありませんが、これは重要ではないと思います。 それがもう少し便利でシンプルになっていることが重要です。
実際、これらのパラメーターは、より使いやすい形式でCMakeのパラメーターを設定するために使用されます:-DCMAKE_BUILD_TYPE =および-DCMAKE_TOOLCHAIN_FILE、それぞれ。
ツールチェーンについてもう少し。 最初は、3つの設定方法がありました。
- Qt Creator Kitに基づいた自動構築(この知識はパーサーによってのみ使用されます。cmakeは他の適切なコンパイラーを非常によく見つけてアセンブリに使用できます)
- 手動でのファイルの割り当て(これまでは検索ダイアログを開くことができなかったため、手動入力のみ: 問題#2 )
- 「インライン」ツールチェーン:ビルトインエディターで編集すると、コンテンツは起動時にQtCreator-toolchain-override.cmakeという名前で離調ディレクトリに保存されます
これまでのところ、Qt Creator Kitベースのオプションはオフになっています( 問題#4 )。
さらに、ニュアンスがあります:CMakeのドキュメントによると、ツールチェーンの変更は、新しい構成または現在の構成の完全なクリア(CMakeFilesおよびCMakeCache.txtの削除)でのみ可能です。したがって、ツールチェーン設定の変更が通知されると、キャッシュを使用せずに完全な再構成が実行されます。 警告ダイアログを追加する予定です( 問題#1 )。
パラメーターのユーザー入力が保存され、さらにパラメーターが既に設定されているかどうかが判断され、ユーザーが使用されることに注意してください。
まあ、それがどのように見えるかの写真:
誰かに役立つと思われる場合、私はうれしいです。 特に、バグ修正と新機能の実装を含むプールリクエストに満足しています。 レポートも優れていますが、プロジェクトの開発動向から理解できます。時間はあまりないため、反応は「遅い」から「遅い」になります。
UPD / 2015-07-18 /:git [master]およびCMakeProjectManager2のQtCでUbuntu 14.04 / Mint 17.xのPPAを作成しました:launchpad.net/~adrozdoff/+archive/ubuntu/qtcreator-git