我工作的一个开源C ++项目,为在Linux和Windows编译代码。 我使用的CMake构建在Linux上的代码。 为了便于开发设置和政治原因,我必须坚持到Visual Studio项目文件/在Windows编辑器(我不能切换到代码::块 ,例如)。 我看到的方式来产生使用CMake的Visual Studio的文件, 在这里 。
你已经使用之前的CMake生成Visual Studio的文件? 如何一直是你的经验? 假设我想一个新的文件添加到我的项目。 什么是这个工作流程?
我工作的一个开源C ++项目,为在Linux和Windows编译代码。 我使用的CMake构建在Linux上的代码。 为了便于开发设置和政治原因,我必须坚持到Visual Studio项目文件/在Windows编辑器(我不能切换到代码::块 ,例如)。 我看到的方式来产生使用CMake的Visual Studio的文件, 在这里 。
你已经使用之前的CMake生成Visual Studio的文件? 如何一直是你的经验? 假设我想一个新的文件添加到我的项目。 什么是这个工作流程?
CMake的实际上是这个相当不错的。 关键的部分是大家在Windows方必须记住在溶液装入之前运行CMake的,每个人都对我们的Mac方必须记住化妆之前运行它。
最难的部分是为Windows 8开发者肯定让你的结构变化均在cmakelist.txt文件,而不是在解决方案或项目文件,这些变化可能会迷路,并且即使没有丢失会不会转移到Mac端谁还需要他们,和Mac家伙需要记住不要修改make文件出于同样的原因。
它只是需要一点思考和耐心,但将首先出现失误。 但是,如果你正在使用持续集成两侧,然后这些都将得到早期震撼了,人们会习惯最终得到。
不知道是否它直接关系到这个问题,但我一直在寻找如何产生的cmake从项目我发现一个可以使用这样的事情*的.sln一个答案:
cmake -G "Visual Studio 10"
的例子中生成所需的VS 2010个文件从输入的CMakeLists.txt文件
我们感动我们部门的建设链条向CMake,我们这里使用我们的项目文件并在习惯于只将它们导入到他们的解决方案有,因为其他部门的一些内部roadbumps。 我们也有一些关于CMake的投诉没有被完全集成到Visual Studio项目/解决方案经理,所以文件都必须手动添加到的CMakeLists.txt; 这是工作流程中的人重大突破都习惯了。
但总的来说,这是一个相当平稳过渡。 我们很高兴,因为我们不必再处理项目文件。
添加新文件添加到项目的具体工作流程是非常简单的:
CMake的2.6自动重新运行本身如有的CMakeLists.txt文件已更改(和(半)自动重新加载该解决方案/项目)。
请记住,如果你正在做外的源版本,你必须要小心,不要制造build目录的源文件(因为Visual Studio中只知道build目录)。
亚历克斯说,它工作得很好。 唯一棘手的部分是要记住做任何修改在cmake的文件,而不是从Visual Studio中。 所以,在所有平台上,工作流程类似,如果你使用普通的旧的makefile。
但是它是相当容易的工作,我已经受够了cmake的产生无效文件之类的东西没有问题,所以我不会太担心。
CMake的可以产生非常好的Visual Studio中.projs
/ .slns
,但总是需要修改的问题.cmake
文件,而不是.proj
/ .sln
。 因为它是现在,我们正在处理,如下所示:
/src
,并在Visual Studio中可见的文件只是“链接”到它们定义.filter
。 /src
目录,而不是默认的项目之一。 .cmake
文件。 起初,大家都有些害怕它会如何了结,但工作流程作品真的很好,与漂亮的差异可见每次提交之前,每个人都可以很容易地看到,如果他的变化是在正确映射.cmake
文件。
人们知道更重要的是缺乏支持( 据我所知 )在CMake的“解决方案配置”。 既然这样,你必须生成两个目录与项目/解决方案-每个构建类型(调试,发布等)。 还有更复杂的功能没有直接的支持 - 换句话说:配置之间的切换不会给你你所期望的东西。
CMake的生成Visual Studio项目和解决方案的无缝连接。 你甚至可以产生不同的Visual Studio版本的项目/解决方案,而无需对CMake的文件进行任何更改。
添加和删除源文件仅仅是一个改变的事情CMakeLists.txt
具有源文件列表和再生项目/解决方案。 甚至有一个通配符功能查找目录中的所有源代码(虽然它应谨慎使用)。
下面的链接解释CMake和Visual Studio的具体行为非常好。
CMake和Visual Studio中
我已经开始自己的项目,叫做syncProj。 从这里文档/下载链接:
https://docs.google.com/document/d/1C1YrbFUVpTBXajbtrC62aXru2om6dy5rClyknBj5zHU/edit# https://sourceforge.net/projects/syncproj/
如果你打算使用Visual Studio进行开发,目前只支持C ++。
相比于其它品牌系统的主要优点是,你实际上可以调试脚本,因为它是基于C#。
如果你不熟悉syncProj,你可以转换你的解决方案/项目.CS脚本,并从该点继续进一步发展。
在cmake的,你需要写一切从头开始。
伟大的答案的很多在这里,但他们可能会被此所取代在Visual Studio CMake的支持(2016年10月5日)