【发布时间】:2012-10-29 18:18:01
【问题描述】:
在 CMake 中,虽然它是一个出色的跨平台工具,但它也非常适合管理复杂的大型配置。我遇到的一个障碍是允许其他跨平台项目拥有特殊的“Visual Studio”项目。也就是说,在编译特定的 Visual Studio 项目时,我需要 CMake 的输出来拥有表单设计器 .resx 文件。这以如下标签结束:
<ItemGroup>
<EmbeddedResource Include="Form1.resX">
<DependentUpon>Form1.h</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
如果我可以编写自定义规则、编写文本或以其他方式对 Visual Studio .vcxproj 文件中的内容进行更低级别的控制,我就可以做到这一点。
.vcxproj.filters 文件有对应的条目:
<ItemGroup>
<EmbeddedResource Include="Form1.resX">
<Filter>Resource Files</Filter>
</EmbeddedResource>
</ItemGroup>
还需要将资源文件添加到 .vcxproj:
<ItemGroup>
<ResourceCompile Include="app.rc" />
</ItemGroup>
到 .vcxproj.filters:
<ItemGroup>
<ResourceCompile Include="app.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
这是对 CMake 的代码更改还是可以添加的其他内容?如果是代码更改,请指出必须在哪里进行代码更改,我可以考虑进行必要的更新。
【问题讨论】:
-
这讨论了资源文件,但 .resX 文件与 .vcxproj 中设计器的 .h 文件相关联,并再次在 .vcxproj.filters 文件中使用。它比资源更复杂。如果它们没有正确设置,那么视觉工作室设计器将无法工作。由于这些都是项目文件中的纯文本项,我认为没有理由不能使用 CMAKE 来包含它们……但我不确定是否有某种方法可以在不更改代码的情况下对其进行扭曲到 CMAKE 本身。
-
迟到总比没有好?我在 GitHub CMake 项目上做了一个拉取请求。希望这将成为未来的一项功能!
标签: visual-studio-2010 cmake visual-studio-2012 visual-studio-project