如何在项目上同时支持 vcxproj 和 cmake?

问题描述 投票:0回答:4

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

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

visual-studio visual-studio-2010 makefile cmake gyp
4个回答
60
投票

有时进行这种类型的转换(例如移植)可能会很有用。在我的旅行中,我发现了以下内容(排名不分先后):

专门针对 VS 到 CMake/GYP

  • vcproj2cmake
  • vcxproj2cmake(不是拼写错误!)
  • gypify.py 是一个 .sln/解决方案读取 Gyp 文件生成器。 Gyp 是 Cmake 的替代品,目前由 Chromium 项目(Google Chrome 浏览器的基础)使用。 Gyp 将输出 Makefile、Visual Studio 或 XCode 构建文件(请参阅 Gyp 的“-f [make|scons|msvc|xcode]”开关)。这个Python脚本很有前途,我希望尽快修改它,以便为gcc的“-I”包含参数正确指定包含标头的文件夹。

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

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

干杯

有钱


15
投票

您正在反向操作 - 设置所有 CMakeLists.txt 并然后从中生成 MSVC 项目。

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

如果您必须设置其他任何内容,那么您的项目可能不太便携:-/


8
投票

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


0
投票

应该可以创建 cmakelists.txt 并从那里生成所有项目文件。然而,很多设置都很难找到。

如果还有人还在看这个十年前的帖子,那怎么办

  • 使用相对路径
  • 将 Intermediate 文件夹设置为类似这样的内容 - ..\Intermediate$(Platform)$(Configuration)$(MSBuildProjectName)\
  • 将项目本地的头文件包含在 vcxproj 中
  • 通过 MBCS 设置 unicode

我猜其中一些是 makefile 不可能实现的,所以它支持最低公分母?

干杯 约翰

© www.soinside.com 2019 - 2024. All rights reserved.