如何在项目中支持vcxproj和cmake?

tik*_*rey 47 makefile cmake visual-studio-2010 visual-studio gyp

我正在开发跨平台的c ++项目.最初的想法是使用msvc2010,然后在CMake和Hudson的帮助下编译其他系统.在工作室设置更改后,手动更改CMake文件似乎并不方便.

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

Big*_*ich 49

它可能会不时地进行这种类型的转换,例如移植.在我的旅行中,我发现了以下内容,没有特别的顺序:

特别适用于VS到CMake/GYP:

  • vcproj2cmake
  • vcxproj2cmake(不是拼写错误!)
  • gypify.py是一个.sln/solution-reading Gyp文件生成器.Gyp是Cmake的替代品,目前被Chromium项目使用(谷歌Chrome浏览器的基础).Gyp将输出Makefile,Visual Studio或XCode构建文件(参见Gyp的'-f [make | scons | msvc | xcode]'开关).这个Python脚本非常有前景,我希望尽快修改它以正确指定gcc的'-I'包含参数的包含头文件夹.

其他与Cmake/Make相关的转换工具:

  • Make It So将Visual Studio解决方案转换为Linux gcc makefile
  • sln2mak C#项目
  • sln2mak Perl脚本
  • GUCEF项目包括用于Cmake的ProjectGenerator工具
  • gencmake(红宝石) - KDE项目
  • ' pbtomake '说它可以将XCode xcodeproj/pbproj文件转换为Makefile(可能已过时)

干杯

丰富


spr*_*aff 13

你向后看 - 设置你所有的CMakeLists.txt,然后从中生成MSVC项目.

它不应该是困难或耗时的.基本上你只需要说明要查看哪些目录,声明你的包含路径,使用glob表达式为每个库收集*.cpps,并声明你的依赖项.

如果你必须设置其他任何东西,那么你的项目可能不是很便携: - /

  • 关键是如果您的主要和主要工具是Visual Studio,即如果您首先使用VS创建和配置项目,解决方案和依赖项,则cmake生成的MSBuild项目和VS解决方案将无法使用.如果你想支持多个平台/构建环境,唯一的选择似乎是放弃VS的舒适度,并潜入手动维护大量文本文件.这种"逆生成"的工具确实非常宝贵...... (14认同)
  • 同意,CMake的重点是将项目指定为构建系统不可知的库,程序,自定义构建步骤列表......然后让cmake根据需要输出构建系统依赖项目.我认为上面提到的转换工具很不错,但只有当你将遗留的Visual Studio项目初始(和一次)转换为CMake时,即便如此,我仍然会手动编辑它. (3认同)
  • 除了一个小项目之外,从VS项目手动重建所有构建逻辑将是乏味和重复的.繁琐和重复的事情应该由计算机完成.当人类做到这一点时,它就容易出错. (3认同)

小智 8

实现此目的的最佳工具是cmake-converter