Boosting CDT Builds
Eclipse CDT has long offered its own way to build C++ projects, called Managed Build System. Implemented entirely in Java, it offers smooth IDE integration, from new project wizard to UI for editing build options to source code parsing. But it also comes with significant limitations - in only supports a single target per source, very hard to extend, and has no human-editable build description, so have seen rather limited adoption. On developer side, it’s a fairly complicated codebase that is no longer maintained.
CDT users, instead, tend to use standalone build systems. Autotools are in wide use, and there are new build engines such as SCons and Waf and Ninja, and there are generator tools, such as CMake. Sadly, none of them has an API that Eclipse can use. There’s no reliable way to enumerate possible build options, so that they could be presented in UI, or list targets, to pick one for debugging, or find compile options for a source file, so that it can be accurately processed by the IDE C++ parser, or to complete target names when editing build files. Further, each build starts from scratch, taking considerable time.
In this session, we show Eclipse CDT integration of Boost.Build - an open-source build system with a simple high-level build descriptions. We extend it to run in a server mode, providing Websockets API that any client can use, and we modify Eclipse CDT to use that API to start builds, query available build parameters and discover compilation options used for sources. Almost all of the session will be a demo.
The complete materials for this sessions, including presentation and links to source, are available at http://vladimirprus.com/talks/boosting-cdt-builds