CMake教程

任何人都可以提供良好的CMake教程的链接,除非非常昂贵和难以获得的官方吗?

在使用CMake for Fortran项目时特别有趣,但对任何好的教程都会感激。

更新。

我已经find的是Kitware Public Wiki中的CMake文章 。 Fortran的例子是绝对没用的。 =(同样在等待答案时,我正在玩SCons ,看起来不错=)

首先,我向YouTube推荐Bill Hoffman提供的一个非常好的CMake介绍讲座和相关工具:

CMake / CPack / CTest / CDash开源工具构buildtesting和部署C ++软件

接下来,快速浏览一下CMake脚本 ,快速简单的例子以及一些CMake语法 ,这样可以帮助你阅读CMake脚本。

现在,您可以立即获得CMake CVS中提供的教程 。 这不是一个讨论,而是在掌握CMake书中使用的代码教程资料。 当然,你需要参考手册来了解各种macros的细节。

在掌握了CMake的基础之后,您可以开始深入研究更高级的技术,并阅读现有的CMakeLists.txt文件,以了解其他人如何破解CMake脚本。

有关全面演练的实例,请查看GitHub上Wigner GPU实验室 最近发布的多部分教程 。

还有一点点过时,布鲁诺·阿比纳德(Bruno Abinader)的两部分教程有很好的评论:

  • 第1部分 – 基本构build系统
  • 第2部分 – 高级构build系统

我也可以推荐CMAKE的实证方法

我还发现CMake脚本的KDE文档非常有用。 它包括一个很好的介绍开发/教程/ CMake 。 但是,一些KDE特有的function和自定义macros可能有点令人不安。

我认为这是一个很好的材料开始。 此外,不要忘记与社区非常有帮助的CMake邮件列表。

现在在线的“掌握CMake”教程! – 比尔·霍夫曼刚刚在邮件列表上宣布。 这里是Web上的CMake Tutorial

学习CMake(PDF) – Pau Garcia i Quiles编写的教程

CMake:入门 – 来自MASH项目Wiki的综合教程。

这里是networking研讨会录制的video,2012年3月 – CMake简介 ,强烈推荐。

由Rico Huijbers撰写的针对现代CMake的最终指南 – 致力于C / C ++项目,也解释了导入/导出目标和项目configuration文件。

下面是由Eric Noulard以各种可打印格式提供的Gake存储库和CMake教程演示文稿 。

这是一个50页的PDF与学习CMake由加西亚我Quiles。

Fortran开发人员,但不仅如此,可能会发现这两篇文章有用:

  • LAPACK库如何使用CMake和LAPACKE实现Microsoft Visual Studio支持 (PDF)
  • Fortran for C / C ++开发人员使用CMake更容易

最后,还有一个Awesome CMake项目,它维护着精美的CMake脚本,模块,例子等等。

请在下面的评论中报告任何损坏的链接。

Fortran应该和C / C ++非常相似。 只需添加.f或.f90文件而不是.c或.cxx文件,也可以在项目调用中包含Fortran。 CMake 2.8对CMake版本的Fortran有最好的支持。 CMake有一些非常好的Fortran支持。 它可以分析源代码并根据在Fortran生成过程中将要发生的所需的.mod文件生成命令进行构build。 如果您有关于Fortran的具体问题或编译器无法正常工作,那么CMake邮件列表将成为您的理想之选。

像这样的东西:

project(testf C CXX Fortran) add_library(hello STATIC hello.f) add_library(world ${_SHARED} world.f world.def) add_executable(testf testf.f) target_link_libraries(testf hello world) 

这是来自CMake中的Fortrantesting: http : //public.kitware.com/cgi-bin/viewcvs.cgi/Tests/Fortran/?root= CMakeNOT AVAILABLE ANYMORE

CMake也有一个确定C / Fortran链接的模块:

http://public.kitware.com/cgi-bin/viewcvs.cgi/Modules/FortranCInterface.cmake?revision=1.19.2.2&root=CMake&view=markup

只是为了让你知道我已经把我的博客移动到一个新的主机( http://brunoabinader.com )和CMake教程也被移动( 后链接 )。 我打算继续处理国际化(i18n),文档(doxygen,qdoc),unit testing集成,debugging/发布模式,多平台支持等主题的教程系列。

这个怎么样:

 cmake_minimum_required (VERSION 2.6) project (hello) enable_language (Fortran) add_executable (hello hello.for) 

有这样一个.for文件:

  Program heyDEM write (*,*) 'Hello heyDEM!' End Program heyDEM 

这是非常基本的,但应该帮助作为介绍

对于CMake本身,上面列出的这些参考答案很好涵盖了你能find的每一件事情。

从我的经验来看,练习是你可以做的最好的事情,其官方文档在他们的网站永远是最好的参考资源。

学习CMake的难点在于,当你想做一些CMake没有直接提供的特殊事情时,你必须find一种方法来使其工作。

CMake中已经有一些开源项目,比如Curl和Boost,如果你想看看CMake是如何在超复杂的真实项目中使用的话。 这总是开始的好地方。

顺便说一下,SCon的问题在于它依赖于Python,对于我们来说,我们需要在AIX / Solaris / Linux(CentOS&RedHat)/ HP-UX上构build。 所以你可能不希望Python,特别是低版本不能正常工作与CMake。

这就是我前一阵子成功的原因:

 PROJECT(FORTRAN_APP CXX Fortran) SET(APP_NAME MyApp) ADD_EXECUTABLE(${APP_NAME} main.cpp test1.F test2.f test3.f90) SET_TARGET_PROPERTIES(${APP_NAME} PROPERTIES LINKER_LANGUAGE CXX) 

参考: CMake邮件列表