• Skip to content
  • Skip to link menu
aKademy 2006
  • Sitemap
  • Contact Us
 

An Introduction to CMake, CTest and Dart

Speaker: Bill Hoffman

The KDE build process is now driven by CMake on all platforms. I am new to KDE, but I am one of the original CMake developers. 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. As one of the largest OSS projects KDE has presented new challenges to CMake and has lead to many improvements.

Unlike many build systems, CMake is designed to be used in conjunction with native build tools allowing developers to use makefiles, Kdevelop projects, Xcode projects, and even MS VS projects. A simple input language 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 also provides a testing system that integrates with the Dart system. The testing system creates dashboards which show a build snapshot of the software at a given time. This is critical to cross-platform development since often a fix 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, and continuous build results that test the build each time files are committed to the source control system.

I will present a brief history of CMake, a description of how CMake works, and will show how the KDE developers can best take advantage of the dashboard system.

Bill Hoffman

[Bill Hoffman]

Mr Hoffman is currently a Vice President and lead technical developer for Kitware Inc., a small software company founded in 1999 devoted to imaging, visualization, computer graphics, and high quality software engineering tools. While at Kitware, Bill has been a lead developer of the CMake cross platform build system. He has also made major contributions to the Insight Toolkit, VTK, and ParaView. He has 14 years of experience with the design and maintenance of large object oriented software systems. Bill also deployed and manages the Kitware electronic store for book and software sales.

Mr. Hoffman completed his B.Sc. in Computer Science from the University of Central Florida in 1990. He then joined General Electric Corporate Research and Development as a member of the Software Technology Program. During the program, he earned an M.S. in Computer Science from Rensselaer Polytechnic Institute. His master’s project led to the software package TargetJr that was a rich environment for Image Understanding research. The system was the precursor to VXL used by GE, Oxford University, and several other sites around the world for advanced work in Computer Vision. His work on the TargetJr project concentrated on the system infrastructure, cross platform GUI, visualization and GIS.

In addition to the TargetJr package, Mr. Hoffman has contributed to the DARPA funded Image Understanding Environment (IUE) project. In 1996, he was recognized for his work as a technical directory for the IUE at the DARPA IU Workshop. As an expert in C++ and object oriented programming, he has also planned and taught several graduate level courses at Rensselaer Polytechnic Institute on C++ and large object oriented systems. He also taught a course on object oriented programming at New York University.

Media

Slides (PDF) (1.9M)
Video (Ogg) (190M)


Overview

Skip menu "Overview"
  • aKademy 2006
  • Schedule
  • Sponsors

Conference

Skip menu "Conference"
  • Program
  • Speakers
  • Presentations
  • Call for Participation

Coding Marathon

Skip menu "Coding Marathon"
  • OpenDocument Day
  • HCI Day
  • BoF Sessions
  • Development Area
  • KDE e.V. Meeting

Participate

Skip menu "Participate"
  • Location
  • Travel
  • Accommodation
  • Registration

Information

Skip menu "Information"
  • Press
  • Contact

Global navigation links

  • KDE Home
  • KDE Accessibility Home
  • Description of Access Keys
  • Back to content
  • Back to menu

Search:


Maintained by the aKademy team
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal