Czy mogę uzyskać GUID wygenerowany przez CMake dla konkretnego vcproj w czasie cmake?
Preambuła: Próbuję zintegrować mój csproj C # z resztą naszej kompilacji cmake z kodem bazowym C ++ i C ++ / CLI. Otrzymałem radę, aby tego nie robić, ponieważ CMake nie współpracuje dobrze z .NET w Visual Studio, ale po wdrożeniu pewnych dostosowań czuję, że jestem bardzo blisko.
Część moich dostosowań polega na użyciu polecenia configure_file w celu edycji pliku csproj w czasie CMake, aby dostosować go w zależności od typu kompilacji (np. X86, x64).
Problem polega na tym, że używam niektórych znaczników ProjectReference w odniesieniu do projektów C ++ / CLI:
<ProjectReference Include="..\..\WrapperProject\WrapperProject.vcproj">
<Project>{7BD6E175-CDD1-4F8D-A3B2-0AC862E62C03}</Project>
<Name>WrapperProject</Name>
</ProjectReference>
... i identyfikatory GUID nie mogą pozostać statyczne, ponieważ zmieniają się dla projektu, gdy bufor CMake jest odbudowywany (popraw mnie, jeśli się mylę).
Tak więc chciałbym znaleźć czas w CMake na to, jakie GUID są planowane dla tych projektów i odpowiednio edytować plik vcproj.
Google informuje mnie, że ludzie są w stanie użyć 'set_property', aby ustawić GUID, w ten sposób:
set_property(CACHE ${target_name}_GUID_CMAKE PROPERTY VALUE ${MY_GUID} )
... ale nie mogę znaleźć odpowiednika gettera. Próbowałem takich rzeczy:
get_property (WRAPPER_GUID CACHE INTERNAL PROPERTY WrapperTargetName_GUID_CMAKE)
... bez szczęścia. Twoja pomoc jest doceniana!