我很抱歉,如果这可能是一个愚蠢的问题,但我对CMake很新,我试图弄清楚如何做一些似乎不是很直接或真正记录的事情(直接至少......) .
我正在尝试使用CMake创建一个跨平台的GLES应用程序,我计划使用ANGLE(https://github.com/MSOpenTech/angle)来支持Windows应用商店和Windows Phone . 我目前正试图获取移植到CMake文件的模板提供的模板的以下位:
<AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_$(Platform)\</AngleBinPath>
然后,如下所示使用此变量以链接到库:
<Link>
<AdditionalDependencies>$(AngleBinPath)lib\libGLESv2.lib;$(AngleBinPath)lib\libEGL.lib;%(AdditionalDependencies)</AdditionalDependencies>
...
然后最后复制DLL文件:
<ItemGroup Label="ANGLE">
<None Include="$(AngleBinPath)libEGL.dll">
<DeploymentContent>true</DeploymentContent>
</None>
<None Include="$(AngleBinPath)libGLESv2.dll">
<DeploymentContent>true</DeploymentContent>
</None>
</ItemGroup>
现在当然有关于如何使用CMake使用外部库的大量信息,但我找不到任何有关如何实现这样的事情的信息,其中每个架构都有不同的二进制文件以及调试和发布 . 我想这一定是一个常见的问题,但它让我难过 . 有任何想法吗?
PS . 我想在CMake端有标志为每个配置生成不同的VS项目将作为最后的手段,但在正常情况下单个人可以做这么多项目可能真的很痛苦 .
1 回答
从版本3.0开始,CMake有generator-expressions,这对于像VS这样的多通道IDE的快速配置专用逻辑实际上是一件好事 .
链接:
安装: