Bill Hoffman <[EMAIL PROTECTED]>
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

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to