前文: C# csproj を、C++ および C++/CLI コードベースの cmake ビルドの残りの部分と統合しようとしています。CMake は Visual Studio の .NET とうまく連携しないため、これを実行しないようアドバイスを受けましたが、いくつかのカスタマイズを実装した後、非常に近いと感じています。
私のカスタマイズの一部は、configure_file コマンドを使用して CMake 時に csproj ファイルを編集し、実行中のビルドのタイプ (x86、x64 など) に応じてカスタマイズすることです。
問題は、いくつかの ProjectReference タグを使用して C++/CLI プロジェクトを参照していることです。
<ProjectReference Include="..\..\WrapperProject\WrapperProject.vcproj">
<Project>{7BD6E175-CDD1-4F8D-A3B2-0AC862E62C03}</Project>
<Name>WrapperProject</Name>
</ProjectReference>
...そして、CMake キャッシュが再構築されるたびにプロジェクトの GUID が変更されるため、GUID を静的のままにすることはできません (間違っている場合は修正してください)。
したがって、私がやりたいことは、これらのプロジェクトに計画されている GUID を CMake で見つけ、それに応じて vcproj ファイルを編集することです。
Google は、次のように「set_property」を使用して GUID を設定できると言っています。
set_property(CACHE ${target_name}_GUID_CMAKE PROPERTY VALUE ${MY_GUID} )
...しかし、同等のゲッターが見つからないようです。私はこのようなことを試しました:
get_property (WRAPPER_GUID キャッシュ内部プロパティ WrapperTargetName_GUID_CMAKE)
...運がない。あなたの助けに感謝します!