Warum hat die CMake-Syntax überall redundante Klammern?

CMake'sifs gehen so:

if (condition)
    ...
else if (...)
    ...
else (...)
    ...
endif (...)

Mitelse if (...) das(...) testet auf eine separate Bedingung.
Warumelse (...) und nicht nurelse? Warumendif (...) und nichtendif?

Cmakes Funktionen sehen folgendermaßen aus:

function(funcname ...)
    ...
endfunction(funcname ...)

Warumendfunction(funcname ...) und nicht einfachendfunction?

Ich kann den Inhalt der redundanten Klammer weglassen, wo er erscheint, wie folgt:endif (). Was ist der Zweck dieses Konstrukts?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage