lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On Thu, Feb 14, 2008 at 4:05 AM, E. Wing <> wrote:
> I know I'm late to the party, but I don't have much time to devote to
>  these threads. But I wanted to chime in.
>  I disagree with the sentiments that a Lua binding for CMake would not
>  be useful (or not useful if not 'Lua-centric'). I think Ken
>  articulated some of the major points very well and I agree with all
>  the points on his list. And I'm very happy to hear he hasn't abandoned
>  the idea completely yet.
>  I've been using CMake for several years now. For trivial things, it's
>  tolerable. But the moment I need to do something complicated, I dread
>  every minute of it. I often feel like I'm fighting the language and
>  dealing with its idiosyncrasies or bugs instead of the actual build
>  system. There are a number of modules I've contributed to CMake, but I
>  know of limitations in them, but I am unmotivated to improve or fix
>  them because I find the language too unpleasant to want to deal with.
>  I can say that I'm not alone in my opinion of the CMake scripting
>  language. Anecdotally, I would estimate that over half the people I
>  have met that have evaluated or had to deal with CMake dislike if not
>  hate the CMake scripting language.

I agree with the % of people I've met who hate CMake syntax.  You get
outside of the CMake community, and a lot of people think it's sheer

What do they hate though?  I think the primary thing to hate is the
undocumented corner cases of lists, strings, semicolons, quotes, and
escapes.  I can't see anything to hate about command(arg arg KEYWORD
arg arg).  That's just blind prejudice, there's nothing inherently
wrong with having everything in the language be in that format.  It's
very easy to get used to when you're serious about cross-platform
build systems and have to crank out a lot of production code.  As
opposed to playing footsie with a new build tool and having the
freedom to whine about it because you have no actual deliverable.

We did all have it out recently that some kind of scoping is required,
that having everything as a global variable is not enough anymore.
That's in CMake CVS and people are shaking the bugs out of it.  CMake
2.6 will have function calls with scope available, so that you don't
have to use plain macros if you don't want to.  Kitware's attitude is
that they will continue to improve the language as needed.

The syntax corner cases desperately need to be documented, that would
help with taming them.  I'm the person most likely to cough it up at
some point.  But like most programmers, I have other things to do than
build systems, let alone documenting build systems, so I haven't done
it.  I'm disappointed that Kitware has never seen this as a high
priority item.

Brandon Van Every