CMake has been in development since 1999, and has been used on several large open source projects such as ITK, VTK, ParaView, VXL, and CMake itself. Further, KDE, one of the largest OSS projects has adopted it, demonstrating that CMake is capable of successfully supporting complex and large software systems. Hence its 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.
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 seminar will cover the history, basic usage and the future of CMake, CTest, CDash and CPack in the context of an integrated development environment.
Julien Jomier is directing Kitware's European subsidiary in Lyon, France (Kitware SAS). Prior to joining Kitware, Mr. Jomier was a Faculty Research Lecturer of Radiology at the University of North Carolina.
Julien has been leading the MIDAS project, a system for collecting, processing, and distributing massive collections of data. He is also the main architect of CDash, an open-source, distributed, software quality system companion of CMake and CTest.
Julien received both his B.S. and M.S in Electrical Engineering and Information Processing in 2002 from the ESCPE-Lyon (France) and an M.S. in Computer Science from The University of North Carolina at Chapel Hill (UNC) in 2003. He worked on a variety of projects in the areas of parallel and distributed computing, mobile computing, image processing and visualization.