[CMake] Re: CMake and Lua

Rodolfo Schulz de Lima rodolfo at rodsoft.org
Fri Feb 29 08:57:11 EST 2008


Bill Hoffman escreveu:
> So what exactly about the CMake language gives you this feel?

Hi, let me just add my opinion on this one. I really think that in a if 
clause, having to repeat the condition in the else, elseif and endif is 
a little too much verbose for my taste. The following snippet 
illustrates this issue

IF(NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
     set(outofbuild true)
ELSE(NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR})
     set(outofbuild false)
endif(NOT ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}

I know that we can disable this *feature*, but it isn't default. I know 
you did this to help programmers know which 'if' an 'endif' is related, 
but this kind of thing is normally done with comments. And in my example 
above since each branch has one line, the verbosity is unnecessary.

The set clause is also a little bit awkward. I really think that cmake 
began as a really simple language for simple things, but then it needed 
to support some complex stuff and some features were hammered into the 
language, and the simple syntax just couldn't afford it, and we ended up 
  with the cmake script language we have now.

The main issue with CMake script isn't when writing a build script, but 
when writing auxiliary stuff, like a more elaborate Find*.cmake. Just 
look at FindwxWidgets.cmake to see what I mean...

Best regards,
rod



More information about the CMake mailing list