Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Original page: todo merge https://wiki.eclipse.org/CDT/ProjectsAndBuildWorkingGroup
Build without Eclipse
Everything needed to build a project has to be checked into source control. While Visual Studio and Xcode are ubiquitous on the platforms they support, Eclipse doesn't enjoy the same power position. To be good citizens in our community and with our users in particular, we shouldn't be forcing them to install Java and Eclipse and our plug-ins on build machines.
Now that doesn't mean we can't generate build files, but we have to do so in such a fashion that those build files are checked in and the tools can run against them without any extra tooling.
Other managed build systems as first class citizens
When CDT began and the managed build system was created, there weren't many popular managed build systems, e.g. systems that generate Makefiles, that we could rely on. Since then, tools such as autotools and CMake and a few others have become very popular. Qt also has it's own qmake to generate Makefiles.
We need to make it easy to plug in those systems into our build process. For example, we could add a step before running 'make' and provide a Java extension point to provide extensions that will do the right thing for those tools. We do have Builders right now but it's at the wrong place in the model.
Separate out build settings that feed into indexer
Right now, information about files participating and not participating in the build is owned by the managed build system and can only be defined for a project that has a org.eclipse.cdt.managedbuilder.core.managedBuildNature nature. Build participation information is used by the indexer since it supports an option not to index files not included in the build. The monopoly of the managed build system on the build participation information has to end. The managed build system itself has to be separated out and made optional so it's easier to add toolchains without going through the complex model.
User provided toolchains
It should be possible to add toolchains without writing an Eclipse plug-in. This could be done with something like a toolchain definition file with an editor that helps guide the user to add in their toolchain.