Rene Rivera wrote:
> Cmake is *technically* not a build system. It is a meta-build system.

Okay, thanks for clarifying that. Although I think that RĂ¼digers is looking for something you call meta-build system in fact.




RĂ¼diger,

There is nothing wrong with Boost.Build. It works as it should, and it is a very sophisticated alternative to gmake and nmake, offering a much clearer syntax and platform independence. But it is still a low-level build tool like it's competitors. Expect to do a lot of of things by hand which can be solved easily in a automated way by using something Rene called a "meta-build" system.

This is especially an issue for open-source projects which often rely on other toolkits and libraries already installed on the system. There are definitely some pretty neat ways to define automated detection rules for these external dependencies in Boost.Build (in fact, you can do these things which any build system), but this might involve a tedious amount of work; this is something you can just circumvent by using a higher-level tool like automake or (for people who dislike automake's approach) CMake.

Another good point is the generation of platform-dependent makefiles or project files which integrate seamlessly in your current development environment. Using Eclipse, who might want to have eclipse project files for you source tree. For Visual Studio or KDevelop, you also want to have building and dependency information. Using low-level build tools, you have to generate these things by hand. Using high-level tools, the output will match your desired development environment.

To summarize this, low-level tools enable you to use a "define once, build everywhere" approach, while high-level tools support the more generalized of approach of "define once, develop everywhere". While this doesn't matter for smaller projects, the latter approach is preferable for all projects involving several developers, maybe even on different developing platforms.

Just my 2 cents on this,

Hendrik

-------------------------------------------------------------------
Brilliance is typically the act of an individual, but incredible
stupidity can usually be traced to an organization. - Jon Bentley

Hendrik Belitz, Computer Scientist
email: hbelitz@computer.org or hbelitz@ieee.org