C++ CMake与不同配置的不同二进制文件
如果这可能是一个愚蠢的问题,我很抱歉,但我对CMake非常陌生,我试图找出如何做一些看起来不太直接或没有真正记录的事情(至少直接记录…) 我正在尝试使用CMake创建一个跨平台的GLES应用程序,我计划使用ANGLE()来支持Windows应用商店和Windows Phone。我目前正在尝试将模板提供的以下模板位移植到CMake文件:C++ CMake与不同配置的不同二进制文件,c++,visual-studio,visual-c++,cmake,windows-store-apps,C++,Visual Studio,Visual C++,Cmake,Windows Store Apps,如果这可能是一个愚蠢的问题,我很抱歉,但我对CMake非常陌生,我试图找出如何做一些看起来不太直接或没有真正记录的事情(至少直接记录…) 我正在尝试使用CMake创建一个跨平台的GLES应用程序,我计划使用ANGLE()来支持Windows应用商店和Windows Phone。我目前正在尝试将模板提供的以下模板位移植到CMake文件: <AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(AngleRootPath)\winrt\
<AngleBinPath Condition=" '$(AngleBinPath)' == '' ">$(AngleRootPath)\winrt\8.1\windows\src\$(Configuration)_$(Platform)\</AngleBinPath>
$(AngleRootPath)\winrt\8.1\windows\src\$(配置)\u$(平台)\
该变量随后将按如下方式使用,以链接到库:
<Link>
<AdditionalDependencies>$(AngleBinPath)lib\libGLESv2.lib;$(AngleBinPath)lib\libEGL.lib;%(AdditionalDependencies)</AdditionalDependencies>
...
$(AngleBinPath)lib\libGLESv2.lib$(AngleBinPath)lib\libEGL.lib;%(附加依赖项)
...
最后,要复制DLL文件,请执行以下操作:
<ItemGroup Label="ANGLE">
<None Include="$(AngleBinPath)libEGL.dll">
<DeploymentContent>true</DeploymentContent>
</None>
<None Include="$(AngleBinPath)libGLESv2.dll">
<DeploymentContent>true</DeploymentContent>
</None>
</ItemGroup>
真的
真的
现在当然有大量关于如何使用CMake外部库的信息,但是我找不到关于如何实现类似的东西的任何信息,其中每个架构以及调试和发布都有不同的二进制文件。我想这一定是一个常见的问题,但它把我难住了。有什么想法吗
另外,我想在CMake端设置标志,为每种配置生成不同的VS项目是最后的选择,但如果在正常情况下只有一个项目可以完成,那么拥有这么多的项目可能会是一种真正的痛苦。因为3.0版CMake,对于像VS这样的多配置IDE来说,这实际上是一件好事 链接:
target_link_libraries(your_target
${AngleRootPath}\winrt\8.1\windows\src\$<CONFIG>_$<PLATFORM_ID>\lib\libGLESv2.lib)
target\u link\u库(您的\u目标
${AngleRootPath}\winrt\8.1\windows\src\$\u$\ lib\libGLESv2.lib)
安装:
install(FILES
${AngleRootPath}\winrt\8.1\windows\src\$<CONFIG>_$<PLATFORM_ID>\lib\libGLESv2.lib
...)
安装(文件)
${AngleRootPath}\winrt\8.1\windows\src\$\u$\ lib\libGLESv2.lib
...)