CMake/CPack/CTest/CDash Open Source Tools to Build Test and Deploy C++ Software

preview_player
Показать описание
Google Tech Talk
December 7, 2009

ABSTRACT

CMake/CPack/CTest/CDash Open Source Tools to Build Test and Deploy C++ Software, presented by Bill Hoffman.

CMake has been in development since 1999, and has been used on several large open source projects such as ITK, VTK, ParaView, VXL, Trilinos and CMake itself. Further, KDE, one of the largest OSS projects has adopted CMake, demonstrating that CMake is capable of successfully supporting complex and large software systems. Hence CMake usage is growing rapidly with thousands of daily downloads and inclusion in several Linux distributions.

In addition to building software, CMake provides a testing client (CTest) that integrates with the web-based CDash testing server. This server creates dashboards that build a snapshot of the software at a given time. This is critical to cross-platform development since often a change on one platform fails to compile on another one. The testing system provides for nightly builds which use a copy of the software at a specific time each night, experimental tests that can be used to share build results with other developers before committing source code, and continuous build results that test the build each time files are committed to the source control system.

This talk will cover the history and features of CMake, CTest, CDash and CPack in the context of a integrated development environment.

Mr. Hoffman is currently Vice President and CTO for Kitware, Inc. He is a founder of Kitware and has been part of the management team since 1999. Bill has 20 years of experience with large C++ systems. He is a lead architect of the CMake cross-platform build system and co-author of the Mastering CMake book. Mr. Hoffman is also involved in the development of the Kitware Quality Software Process and CDash, the software testing server. Mr. Hoffman developed the C++/COM wrapping technology used to create Kitware's ActiViz product line. He has also made major contributions to VTK, ITK and ParaView. As CTO for Kitware, he guides the implementation and development of large-scale computing solutions, and oversees computer infrastructure decisions, including developing Kitware's E-Store technology.

Mr. Hoffman received a B.S in Computer Science from the University of Central Florida, and an M.S in Computer Science from Rensselaer Polytechnic Institute (RPI). He is a graduate of the GE Software Technology Program. Prior to joining Kitware he spent nine years at GE's Global Research Center working in the Computer Vision Group. As an expert in C++ and object-oriented programming, he has planned and taught several graduate level courses at RPI, as well as a course on object-oriented programming at New York University. Mr. Hoffman has been an invited speaker at national and international conferences, such as OSCON, FOSDEM and KDE Developer's Conferences.
Рекомендации по теме
Комментарии
Автор

07:40 CMake
31:34 CTest/CDash
53:48 CPack

DaveYostCom
Автор

How hard would it have been for (a) Google to make the audience questions audible, or (b) the speaker to repeat/summarize those questions?

robertmkline
Автор

Does it also support a mechanism like the FindSomething scripts of CMake? This is one of the best features of CMake I think. I'm also interested in the CTest/CDash stuff but this could maybe also implemented using Hudson/Jenkins and some plugins.

Mr.Thompson
Автор

You know though, I've changed my mind about cmake. First, the documentation isn't there. There just aren't good tutorials on it. Second, it seems a bit over-engineered. Anyway, I've started using waf which seems really good. It's also more flexible I think. Well, anyway just my 2c

kotapaka
Автор

I think they want to push buys of the companion book they sell. ^^ But you're right, it is hard to learn cmake. But when you know to basic thinks and have mastered the first not soo small cross-platform builds, then you don't want to go back and maintain Visual Studio Solutions and e.g. Eclipse-projects separately. One of them is always outdated. :D

Mr.Thompson
Автор

The genious engineers from google should have set the minimal resolution, minimal font etc. for presentation being displayed, that we COULD actually read what the person wanted to show in his presentation. Can anyone read all the boards displayed to the right ?

JanKowalski-bcjl
Автор

The bad part about cmake is there is little documentation

kotapaka
Автор

Google : Introduction to CMake on Vimeo, that's much better .

JanKowalski-bcjl
Автор

65-70 employees? When you have a company of this size shouldn't you mention the exact number? 65 people is a handful of people - it's not hard to know the exact number of employees.

kotapaka
Автор

ah balls to that autoconf and automake have been around for so long now that they are easy and very very very customisable you can do far more interesting things esp when your working with compilers like me. Though it would be nice to have some msvc integration but meh i never develop on windows i just do C on unix every day :S so i dont care

philbert_io
Автор

True, autoconf + automake >> cmake. Because they're bloatware and coarsely hobbled together hacks. Ever looked at the M4 code? THAT's ugly! Require Cygwin/MSys just to build a software? Hardly... Just my 2c.

themiwi
Автор

Logical fallacy: Appeal to tradition. This is one of the problems with moving past autotools. Just because it's older and the end product works doesn't mean it's better. It's acceptable, but not better. That and nobody wants to give up the knowledge investment in learning autotools.

fadecomic
Автор

It takes 1 hour. Seriously what the fuck.

Hakohn
Автор

they forget to mention cmake is disgusting! :P autoconf and automake is >> cmake. And cmake isn't that portable yet!

philbert_io
Автор

Terrible software but CMake works somehow.
But CPack is really a waste of time. Just take the challenge and learn WiX and how to bundle software on MacOSX (terrible with CMake).

llothar