Могу ли я получить GUID, сгенерированный CMake для конкретного vcproj во время cmake?

Преамбула: я пытаюсь интегрировать мой C # csproj с остальной частью нашей сборки Cmake на основе C ++ и C ++ / CLI. Я получил совет против попыток сделать это, потому что CMake плохо взаимодействует с .NET в Visual Studio, но после реализации некоторых настроек я чувствую, что я очень близок.

Частью моей настройки является использование команды configure_file для редактирования файла csproj во время CMake, чтобы настроить его в зависимости от типа сборки (например, x86, x64), которая происходит.

Проблема в том, что я использую некоторые теги ProjectReference для ссылки на проекты C ++ / CLI:

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

... и GUID не могут оставаться статическими, поскольку они изменяются для проекта всякий раз, когда кэш CMake перестраивается (поправьте меня, если я ошибаюсь).

Так что я хотел бы найти во время CMake, какие GUID планируются для этих проектов, и соответственно отредактировать файл vcproj.

Google говорит мне, что люди могут использовать set_property для установки GUID, вот так:

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

... но я не могу найти эквивалент геттера. Я пробовал такие вещи:

get_property (WRAPPER_GUID CACHE ВНУТРЕННЯЯ СОБСТВЕННОСТЬ WrapperTargetName_GUID_CMAKE)

... без удачи. Ваша помощь ценится!

Ответы на вопрос(2)

Ваш ответ на вопрос