CMake/CPack/CTest/CDash Open Source Tools to Build Test and Deploy C++ Software
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.
Unlike many build systems, CMake is designed to be used in conjunction with native build tools enabling developers to use makefiles, Kdevelop projects, Xcode projects, and even MS Visual Studio projects. A simple input language (included in a CMakeLists.txt file) is used to specify which files to build and what types of system introspection tests need to be performed to build the software. A persistent cache file is used to store the system information and avoid the need for user-defined environment variables.
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.
Once the software is built and tested, the CPack tool can be used to package the software. CPack works similar to CMake in that it generates package information for native packaging tools. NSIS, RPM, OSX packages self extracting tar.gz, tar.gz, tar.zip can all be created. CPack information is included as a simple extension to the CMake build files.
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.
Duration : 1:8:4
[youtube 8Ut9o4OdSC0]
Haven’t seen …
Haven’t seen anything you can’t do with CMake that you can do with autohell so far… (apart from convenience libraries, that is) But I’ve seen a LOT that you can’t do with autohell without going to considerable lengths. And then libtool is just a PITA and unbelievably slow.
So, if you don’t care about Windows and your project is medium-sized, go on and torture yourself
ah balls to that …
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
@themiwi: At least …
@themiwi: At least they are documented.
The video is good …
The video is good for the introduction to the various tools Kitware is developing, CPack, CMake, and CDash. I have used GNU Make, BJam, and now CMake. So far CMake is working quite well for my builds. Not without problems howerver, no solution is perfect. I have been able to date to get past each of my issues with CMake and the ThridParty libs that use it. I am looking to use CDash and CPack so I cannot speak to these yet. One of the reasons I watched this video.
True, autoconf + …
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.
they forget to …
autoconf and automake is >> cmake. And cmake isn’t that portable yet!
they forget to mention cmake is disgusting!
@Luke1d20 No firefox
@Luke1d20 No firefox
my ears hurt =(
my ears hurt =(
@GODLYELLiiOT you …
@GODLYELLiiOT you must be using internet explorer, the lemon of web browsers.
@GODLYELLiiOT: The …
@GODLYELLiiOT: The video works?
Get youtube fixed. …
Get youtube fixed. I want to be able to see videos when they come out, not a hour later…