Cross platform 从Jam迁移到CMake
我了解Jam构建现有项目,CMake生成要构建的项目。但是,考虑到我更愿意生成可以在各种IDE中使用的项目,而不是尝试将Jam集成到这些IDE中,有没有人有过将Jam文件转换成CMakeLists.txt文件的经验/成功经验?我以前在所有Linux项目中都使用Jam,因为它比常规的makefiles更容易。然后我发现了CMake,并没有回去。编写CMakeLists.txt文件和编写Jamfiles一样简单,而且您可以免费获得特定于平台的IDE支持,尽管在我看来,IDE项目没有手工生成的项目那么干净 据我所见,现在很少有人使用果酱,尽管果酱有很多优点。它确实声称能够在各种平台上构建,但与此同时,它似乎不再享受积极的开发,因此我倾向于不相信它的多平台声明 据我所知,目前还没有自动将JAMK文件的层次结构转换为CMakeLists.txt文件的层次结构的工具,尽管这样的工具肯定是一个可行的项目。然而,由于Jam的不受欢迎,在较小程度上,CMake,除非你或我找到一些空闲时间,否则这样的工具不会出现( 如果您的项目不太复杂,一些简单的搜索和替换操作应该可以将jamkelists.txt文件转换为CMakeLists.txt文件。如果您的项目很复杂,那么手动转换它们可能是最佳选择 一些简单的转换:Cross platform 从Jam迁移到CMake,cross-platform,cmake,bjam,jam,Cross Platform,Cmake,Bjam,Jam,我了解Jam构建现有项目,CMake生成要构建的项目。但是,考虑到我更愿意生成可以在各种IDE中使用的项目,而不是尝试将Jam集成到这些IDE中,有没有人有过将Jam文件转换成CMakeLists.txt文件的经验/成功经验?我以前在所有Linux项目中都使用Jam,因为它比常规的makefiles更容易。然后我发现了CMake,并没有回去。编写CMakeLists.txt文件和编写Jamfiles一样简单,而且您可以免费获得特定于平台的IDE支持,尽管在我看来,IDE项目没有手工生成的项目那么
变成HDRS+=a.hb.hc.h;
include\u目录(a.hb.hc.h)
变成Main HelloWorld:Main.cpp utils.cpp;
add\u可执行文件(HelloWorld Main.cpp utils.cpp utils.h)
变为Library helper:helper.cpp
add\u库(helper STATIC helper.cpp helper.h)
变成子目录foo;
添加子目录(foo)
变成LinkLibraries-HelloWorld:libhelper;
target\u-link\u库(HelloWorld-helper)
CMake生成的IDE项目不会自动包含相关的头文件,因此我在上面的示例中明确地包含了一些重要的头文件。如果您还没有看到,那么有一个很好的示例。对于Jam到CMake的转换,尝试扩展vcproj2cmake来实现Jam解析器可能也很有用(CMake syntax text streams的生成器部分现在已经相当强大了)。因此,我最终决定最好的办法是从头开始CMake项目。我们的Jam项目太乱了,我不想把我们意大利面构建的粗枝大叶遗留下来 我发现这些资源非常有用