我的一部分定制是使用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>
...而GUID不能保持不变,因为每当重新构建CMake缓存时,项目的GUID会改变(如果我错了请纠正)。
所以,我想在CMake时间找出这些项目计划使用的GUID,并相应地编辑vcproj文件。
谷歌告诉我人们能够使用“set_property”来设置GUID,就像这样:
set_property(CACHE ${target_name}_GUID_CMAKE PROPERTY VALUE ${MY_GUID} )
...但我似乎找不到相应的getter。 我尝试过类似这样的东西:
get_property(WRAPPER_GUID CACHE INTERNAL PROPERTY WrapperTargetName_GUID_CMAKE)
...但没有成功。 希望您能帮忙!