首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Jam迁移到CMake

从Jam迁移到CMake
EN

Stack Overflow用户
提问于 2012-04-11 05:00:03
回答 3查看 3.1K关注 0票数 6

我知道Jam构建现有的项目,而CMake生成要构建的项目。但是,考虑到我更愿意生成可以在各种集成开发环境中使用的项目,而不是尝试将Jam集成到这些集成开发环境中,有谁有将Jam文件转换为CMakeLists.txt文件的经验/成功吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-21 02:37:13

所以我最终决定最好的办法就是从头开始一个CMAKE项目。我们的Jam项目是如此的混乱,我不想继续我们的意大利面条构建的拐点。

我发现这些资源非常有用。

http://www.cmake.org/Wiki/CMake_Useful_Variables http://www.cmake.org/cmake/help/v2.8.10/cmake.html

票数 0
EN

Stack Overflow用户

发布于 2012-04-16 02:07:23

我过去在所有的Linux项目中都使用Jam,因为它比普通的makefile更容易。然后我发现了CMake,就再也没有回去过。编写CMakeLists.txt文件和编写Jamfiles文件一样简单,而且您可以免费获得特定于平台的集成开发环境支持,尽管集成开发环境项目并不像手动生成的项目那样干净。

据我所知,现在很少有人使用Jam,尽管它有很多优点。它确实声称能够在各种平台上构建,但同时,它似乎不再享受积极的开发,所以我倾向于不相信它的多平台声明。

据我所知,目前还没有工具可以将CMakeLists.txt文件的层次结构自动转换为Jamfile文件的层次结构,尽管这样的工具肯定是一个可行的项目。然而,由于Jam和CMake的不受欢迎,除非您或我找到一些空闲时间,否则这样的工具还不会出现。:(

如果您的项目不是太复杂,一些简单的搜索和替换操作就可以将and文件转换为CMakeLists.txt文件。如果你的项目很复杂,那么手动转换它们可能是你最好的选择。

一些简单的转换:

  • HDRS += a.h b.h c.h ;变成include_directories(a.h b.h c.h)
  • Main HelloWorld : main.cpp utils.cpp ;变成add_executable(HelloWorld main.cpp utils.cpp utils.h)
  • Library helper : helper.cpp变成add_library(helper STATIC helper.cpp helper.h)
  • SubDir foo ;变成add_subdirectory(foo)
  • LinkLibraries HelloWorld : libhelper ;变成target_link_libraries(HelloWorld helper)

CMake生成的集成开发环境项目不会自动包含相关的头文件,因此我在上面的示例中明确包含了重要的头文件。如果你还没有看过的话,这里有一个很好的例子here

票数 5
EN

Stack Overflow用户

发布于 2012-07-21 02:50:36

对于Jam到CMake的转换,尝试扩展vcproj2cmake以实现Jam解析器也可能很有用( CMake语法文本流的生成器部分现在已经具备了相当的功能)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10096391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档