[CMake] CMake and Lua

Ken Martin ken.martin at kitware.com
Mon Feb 25 15:58:25 EST 2008


> I'm even more convinced that
> having only limited programming functionality available in build files is
> a
> good thing.
> While the cmake language may not be beautiful, it works, and the users
> (developers) are not supposed to write programs with it.

OMG flame war!!!! Bring it!  :)

Seriously though, it probably depends on what you mean by "write programs"
and "limited programming functionality" I think in the end you need a
language you *could* at least write bad programs in :). Case in point the
CMake language originally did not include many of the programming constructs
it now has; macros, foreach, while, functions, etc. Heck a very basic
version of the if statement was not added until a full six months after
development was rolling along. It was intended to be pretty much
declarative. But these features were all added because big projects need
more than a declarative format. They need conditionals. And the really big
projects need other constructs for code management. For example: VTK has
around 20,000 lines of CMake code to build it (which is a bit absurd
but...). When you get to 20,000 lines you need some form of structure to it,
code reuse, etc, otherwise it just becomes a mess. Which is why CMake has
include, macro, foreach etc. which are all staples of a programming
language.

I do get your point that people should not *have* to program to do common
tasks. Some other build systems seem to rely on the user to do far too much.
The build system should include support for all common tasks at a high level
as macros or commands etc. But I think you still need programming power for
the corner cases large projects bump into.

Ken



More information about the CMake mailing list