2016-11-17 7 views
0

私はいくつかのVisual Studioプロジェクトを単一のソリューションに生成するCMakeプロジェクトを持っています。 1つのプロジェクト(例えばadd_target_definitions)のみに影響するCMakeスクリプトを変更し、CMakeを呼び出してプロジェクトを再生成すると、すべてのプロジェクトファイル(* .vcxproj)がディスクに書き換えられます。これは、実際にはプロジェクトファイルの1つだけが実際には異なっていても、すべてのターゲットの再構築をトリガーします。これは私が持っているさまざまな構成のビルド時間に大きく追加されます。CMake:プロジェクトを書き直します(変更された場合のみ)。

これらの異なるターゲット定義(たとえば、コマンドラインで提供されています)を持つプロジェクトをいくつか再構築し、影響を受けていないライブラリを再コンパイルしないとします。また、ALL_BUILDターゲットをコンパイルするときに機能するソリューションが必要で、複数のプロジェクト(ソリューション)に分割されません。

CMakeオプション、またはこの動作を回避する他のトリックはありますか?

答えて

0

add_target_definitionsを使用していたCMakeスクリプトがトップレベルのCMakeLists.txtに含まれていたことが判明し、その下のディレクトリにあるすべてのCMakeLists.txtはそれに依存していました。私はこのプロジェクトの1つをgenerated.stamp.dependで調べました。

これを必要なプロジェクトにのみ含まれる別のスクリプトに分割すると、プロジェクトはもう書き換えられなくなります。

関連する問題