hendu wrote:
Buying into proprietary tools like VS does not promote cross-platform growth either. It promotes lock-in.
An open source outfit "with legs" has done the VS maintenance work for you. You don't have to and you're not locked in. CMake works, it's field proven, it's the most mature of build systems that straddle both worlds. "Cross-platform" inherently means embracing non-Unix, proprietary OSes with different cultures and toolchains than you favor. There simply aren't enough OSes out there for it to be any other way. Apple is only marginally better than Microsoft, their entire corporate paradigm is based on controlling users and straitjacketing them in walled gardens. They just have somewhat better underlying technology that looks Unixy, until you get into the core GUI value propositions of their apps. None of the console manufacturers are worth a spit, they're all about controlling developers.
Anyways go to school on how much trouble the Ogre crowd is or isn't having with their builds.
What do unrelated projects have to do with cmake having many issues? The issues I mean are not on the project side, but on the user side, all of them.
User side? Somehow I can't feel sorry for a Unix user at all, given the sheer amount of cruft any such user is expected to embrace as a matter of course. There's nothing wrong with CMake tools compared to that. In fact they've got really nice GUIs. So what kind of users are you talking about, Windows and Mac users?
It makes cross-compiling practically impossible.
I haven't tried cross-compiling with CMake. I know the capability has existed in some form or another for 5 years now, so I flat out don't believe you.
It makes it very difficult to tweak the flags/paths for some files but not all (remember, as the end-user building, not the project creator!).
And why would the
typical end user want to tweak the flags and paths of
some files and not all? Sounds like you're inserting your own personal issue here. To which I say, you can be responsible for learning how to modify CMakeLists.txt yourself if you require that fine a level of build control.
It requires weird hacks into its own files to get it to properly detect GL and some other libs.
That's because people at opengl.org are not motivated to actually fix those scripts in the CMake sources. I know because Kitware was going to move those bugs in the bug tracker to a backlog, after an egregiously short amount of time after they were filed, like only a couple of months. I howled, and went to both opengl.org and the specific project mailing lists for the detection scripts in question. I made my case about the value of keeping those scripts "in shape" and crickets chirped. None of those guys valued CMake enough to do anything about it, so into the backburner log they went, and crufty they remain.
Why didn't I fix them? Because, despite my willingness to point out the positives of CMake, I had a falling out with their developers many years ago, and would only do work on their behalf if some overriding need took hold. CMake is not my idea of the best build system possible. I've intended to make my own build system, but in the real world, it hasn't gotten done. opengl.org had a serious lack of open source developer energy as well, something that put me in a bit of a slough about doing anything in open source for quite a number of months. I'd try out people's example code, it wouldn't work, I'd pore over CMake scripts and file bugs, but they wouldn't fix them. So I gave up on that crowd, and swore I wouldn't waste any more time on people's shoddy builds, CMake or not.
Recently I came out of my shell, decided that I wasn't getting anything done "rolling my own" 3d engine, and should at least evaluate the extant open source offerings. I had a possible military client to spur my interest in getting something working, although I don't know that that's really going to happen. Anyways I chose to beat the Ogre, ClanLib, and Irrlicht builds into shape. Because they are all substantial projects, they are far more "on the ball" about open source development than anyone at opengl.org is. Problems get discussed and things get fixed. I still need to figure out which of these 3d engines is "worth the most" for OpenGL 3.x development on Linux.
Ogre already has a CMake build so there's no work to be done there. I'm just blocking on some OpenGL 3.x HW specific bug. ClanLib rolled their own build configuration tool for Visual Studio and uses Autoconf for Unix. It's not a tenable paradigm over the long haul, so I've had the "better build systems" discussion there as well. I would like to know if the grass is greener with Premake. It uses Lua as the scripting language. CMake had a Lua prototype at one point, but they chose not to support that, so as not to fragment their extant customer base. Annoying.