Visual studio 如何在项目中支持vcxproj和cmake? 我正在开发跨平台C++项目。最初的想法是使用msvc2010,然后在CMake和Hudson的帮助下为其他系统编译。 在studio设置更改后手动更改CMake文件似乎并不方便

Visual studio 如何在项目中支持vcxproj和cmake? 我正在开发跨平台C++项目。最初的想法是使用msvc2010,然后在CMake和Hudson的帮助下为其他系统编译。 在studio设置更改后手动更改CMake文件似乎并不方便,visual-studio,visual-studio-2010,makefile,cmake,gyp,Visual Studio,Visual Studio 2010,Makefile,Cmake,Gyp,那么,最简单的方法是什么:为vcxproj和vcxproj.filters编写解析器,或者有另一个好的解决方案?您的方法是倒退的——设置所有的CMakeLists.txt,然后从中生成MSVC项目 这不应该很难,也不应该很费时。基本上,您只需说出要查看的目录、声明包含路径、使用glob表达式收集每个库的*.cpp,以及声明依赖项 如果您必须设置任何其他内容,那么您的项目可能不是非常可移植的:-/有时,进行这种类型的转换(例如移植)可能会很有用。在我的旅行中,我发现以下几点,没有特别的顺序: 特别

那么,最简单的方法是什么:为vcxproj和vcxproj.filters编写解析器,或者有另一个好的解决方案?

您的方法是倒退的——设置所有的CMakeLists.txt,然后从中生成MSVC项目

这不应该很难,也不应该很费时。基本上,您只需说出要查看的目录、声明包含路径、使用glob表达式收集每个库的*.cpp,以及声明依赖项


如果您必须设置任何其他内容,那么您的项目可能不是非常可移植的:-/

有时,进行这种类型的转换(例如移植)可能会很有用。在我的旅行中,我发现以下几点,没有特别的顺序:

特别针对VS到CMake/:
  • (不是打字错误!)
  • 是一个.sln/solution读取文件生成器。Gyp是Cmake的替代品,目前正被Chrome项目(谷歌Chrome浏览器的基础)使用。Gyp将输出Makefile、Visual Studio或XCode构建文件(请参阅Gyp的“-f[make | scons | msvc | XCode]”开关)。这个Python脚本非常有前途,我希望很快修改它,以便正确地为gcc的'-I'include参数指定包含文件夹的标题
其他与Cmake/Make相关的转换工具:
  • 将Visual Studio解决方案转换为Linux gcc生成文件
  • C#项目
  • Perl脚本
  • 包括用于Cmake的ProjectGenerator工具
  • (ruby)–KDE项目
  • “”表示它可以将XCode xcodeproj/pbproj文件转换为Makefiles(可能已过时)
干杯


Rich

实现此目的的最佳工具是

我知道该选项,但想法是在studio中将CMake文件的手动edion替换为众所周知的选项。您能否更具体地说明正在更改哪些设置/选项?关键是CMake生成的MSBuild项目和VS解决方案不可用,如果您的主要工具是Visual Studio,即如果您首先使用VS创建和配置项目、解决方案和依赖项。如果您想要支持多个平台/构建环境,那么唯一的选择似乎是放弃VS的舒适性,转而一直手动维护大量文本文件。一个实现这种“反向生成”的工具确实是非常宝贵的…同意,CMake的全部要点是将项目指定为一个与构建系统无关的库、程序、自定义构建步骤列表。。。然后让cmake根据需要为您输出一个依赖于构建系统的项目。我认为上面提到的转换工具很好,但前提是你要将一个遗留的visual studio项目初步(一次)转换为CMake,即使这样,我仍然会手工编辑它。除了一个小项目之外,手工从VS项目中重新创建所有构建逻辑将是一件乏味且重复的事情。单调重复的事情应该由计算机来完成。当一个人这样做的时候,它就会变得容易出错。。。它创建了一个不列出任何源文件的.gyp文件@Aviad Rozenhek,简单地说,我使用了'gypify.py--sln='然后通过'gyp./converted-vs20xx-sln.gyp--toplevel dir=/path/to/project/root/--depth='从gyp中创建了我的构建文件-f[make |或| other | build]——发电机输出=./'。希望有帮助。gyp真的支持烤饼吗?我现在为cpp项目开发了一个脚本:如果你感兴趣的话。它将
.vcxproj
转换为
CMakeLists.txt