2017-01-30 2 views
0

Visual StudioからCMakeでクロスコンパイルしています。クロスコンパイラのプラットフォーム(Visual Studioのプラットフォームプロパティページで実装されている)は、特定のプロパティページをすべてのプロジェクトに追加する必要があります。 CMakeの夜間支店には、このプロパティシートを追加するために使用できるプロパティVS_USER_PROPS_CXXがあります。これは私のプロジェクトファイルとINSTALLプロジェクトファイルを修正します。CMakeのALL_BUILDとZERO_CHECKターゲットにプロパティを追加する

ただし、このプロパティはALL_BUILDまたはZERO_CHECKターゲットには適用されません。私はCMAKE_SUPPRESS_REGENERATIONを設定することができます。ZERO_CHECK(Visual Studioでの再生成を無効にしています)の問題を避けることができますが、ALL_BUILDについては何もできないようです。その結果、私が行うとき:cmake --build <project dir>ALL_BUILDは失敗します(プロジェクトが成功したとしても)。

ALL_BUILDを無効にする方法とプロパティを追加する方法はありますか?

答えて

0

CMakeのソースコードを確認した後、少なくともALL_BUILD(またはZERO_CHECK)に追加のプロパティを追加する方法がないことは明らかです。ただし、ソースコードを変更(ハッキング)することで、特定のプロパティをユーティリティターゲットに含めることができます。

具体的には、Visual Studioのジェネレータ用に、cmGlobalVisualStudio8Generator::AddCheckTargetZERO_CHECKターゲットを追加し、cmGlobalVisualStudioGenerator::AddExtraIDETargetsALL_BUILDターゲットを追加します。これらのソースコードを変更して、cmTarget::SetPropertyを適切な場所に適切な値で呼び出すことができます。

これが必須の場合は、残念ながら独自のバージョンのCMakeを維持する必要があります。

関連する問題