Kann ich die GUID, die von CMake für ein bestimmtes vcproj generiert wurde, zur cmake-Zeit abrufen?

Präambel: Ich versuche, mein C # csproj in den Rest unseres C ++ - und C ++ / CLI-Code-Base-Cmake-Builds zu integrieren. Ich habe den Rat erhalten, dies nicht zu versuchen, da CMake in Visual Studio nicht gut mit .NET zusammenarbeitet, aber nach dem Implementieren einiger Anpassungen habe ich das Gefühl, dass ich sehr nah dran bin.

Ein Teil meiner Anpassung ist die Verwendung des Befehls configure_file, um die csproj-Datei zur CMake-Zeit zu bearbeiten und je nach Art des Builds (z. B. x86, x64) anzupassen.

Das Problem ist, dass ich einige ProjectReference-Tags verwende, um auf die C ++ / CLI-Projekte zu verweisen:

<ProjectReference Include="..\..\WrapperProject\WrapperProject.vcproj">
  <Project>{7BD6E175-CDD1-4F8D-A3B2-0AC862E62C03}</Project>
  <Name>WrapperProject</Name>
</ProjectReference>

... und die GUIDs können nicht statisch bleiben, da sie sich für das Projekt ändern, wenn der CMake-Cache neu erstellt wird (korrigieren Sie mich, wenn ich mich irre).

Was ich also tun möchte, ist, zu CMake-Zeitpunkt herauszufinden, welche GUIDs für diese Projekte geplant sind, und die vcproj-Datei entsprechend zu bearbeiten.

Google teilt mir mit, dass die Benutzer "set_property" verwenden können, um die GUID wie folgt festzulegen:

set_property(CACHE ${target_name}_GUID_CMAKE PROPERTY VALUE ${MY_GUID} )

... aber ich kann das Getter-Äquivalent nicht finden. Ich habe Folgendes ausprobiert:

get_property (WRAPPER_GUID CACHE INTERNAL PROPERTY WrapperTargetName_GUID_CMAKE)

... ohne Glück. Deine Hilfe wird wertgeschätzt!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage