[CMake] Re: CMake and Lua
Enrico Scholz
enrico.scholz at informatik.tu-chemnitz.de
Sat Mar 1 13:44:36 EST 2008
Bill Hoffman <bill.hoffman at kitware.com>
writes:
>> I find that the CMake script language seems designed to make COBOL
>> coders feel they don't actually have the worst job in the world.
>>
> So what exactly about the CMake language gives you this feel?
* the mix of case-sensitive and case-insensitve language elements
Afair, HTML in 1992 was the last (non-educational) language with
case-insensitive keywords ;)
* no well defined syntax:
- missing datatypes; all seems to be a string. Mastering ';' and
spaces is trial-and-error game :(
- function/macro calls are ambiguous; everything is a string, parameters
are not delimited e.g. by ',' but start with a keyword understood by
actual macro only.
E.g. why will
| EXEC_PROGRAM(foo ARGS ARGS foo)
| EXEC_PROGRAM(bar HERE ARGS bar)
| EXEC_PROGRAM(baz ARGS HERE baz)
execute
| running foo foo 2>&1
| running cd "HERE" && bar bar 2>&1
| running baz HERE baz 2>&1
?
CMake is a tool written for developers. So you can expect that they have
some understanding of grammar and semantics of a computer language. You
do not need to simplify things so that they work in most cases but are
completely undefined in the remaining ones.
* inconsistent behavior across the subsystems (build, install, test);
e.g.
| ADD_CUSTOM_TARGET(test COMMAND echo "A=\${A}")
| INSTALL(CODE "MESSAGE(\"A=\${A}\")")
| $ make A=a test
| A=a
| $ make A=a install
| A=
Enrico
More information about the CMake
mailing list