[CMake-Promote] Re: [Sweng-gamedev] Multi-platform build/project
configurations
Brandon J. Van Every
bvanevery at gmail.com
Tue Apr 3 13:51:58 EDT 2007
Squirrel Eiserloh wrote:
> We are playing around with different project/build configurations in
> order to find the least of evils. Our current operating assumption is
> that the cleanest way to do this is to use a general makefile-based
> approach for all platforms, since there are exceptions (PS3, Mac, etc)
> that complicate project unification for us.
>
Well how about CMake? http://www.cmake.org It generates Makefiles and
Visual Studio files equally well. "Frameworks" (whatever those are) on
Mac OSX aren't supported, but the CMake developers are willing to deal
with it as more people keep asking about it, so I expect it to happen in
the future. The CMake source code is BSD licensed, so you can use it as
the basis for anything custom you want to do. Of course, the CMake
community would hope that you do things that benefit others, so that
others can benefit you, but it's not essential.
I've noticed a recurring pattern with some developers who evaluate
CMake. They throw a few days at CMake, get stuck, get frustrated,
never ask any questions on the CMake mailing list, throw their hands in
the air, bag it, start writing their own homebrew scripts to do their
build system, and then become happy again. I'm concerned that such
developers are seeking short-term psychological satisfaction, rather
than long-term practical results. That is, "I'd rather write Python /
Ruby / Perl code, because I already know how to do it." Completely
leaving aside whether such an approach will scale to reach the goal, or
whether it makes any financial sense to partially or fully reinvent the
wheel. I see a really big problem when developers are getting paid to
write scripts. They will script, script, script, script, script and
make it look like there's some kind of justification for what they're
doing. I don't get paid a dime for my build system stuff. So I'm very
interested in doing as much as I can with as little as I can, and
getting the CMake authors to add features if need be, rather than me
doing it myself.
The CMake community is going to try to come up with some white papers,
articles, and other data points about why the "let's script it all
ourselves" approach is not such a hot idea. If we can actually
demonstrate that. I'm certain that CMake is better than homebrew
scripting for some projects. It can't be so for all projects. But
there should be a criteria for whether your project is "special" or not,
and just how "special" it is. Programmers like to think that they're
special, that their needs are unique, that they should do everything
from scratch because their personal vision is the best way to solve the
problem. Or just because it's more fun to do it their way, better or
not! Generally this is what we need managers for, to rein guys like
this in. I mean geez, a build system? They're not glamorous projects.
Can't we learn to save the Not Invented Here impulse for something more
important, like our game design code?
Cheers,
Brandon Van Every
More information about the CMake-Promote
mailing list