Modding, Mission Design, and Coding > Cross-Platform Development

Anybody interested in CMake? (I'm new to the forum)

(1/4) > >>

MasterGeek:
Hi. I just joined the forum, btw. I've been looking for a project to do over my summer break, and I've been eyeing up the fs2open code. I've been looking for a place to jump in, and I feel like doing a CMake conversion of the build system. You see, I have a large amount of C/C++ experience, but little OpenGL experience. I've also programmed on a number of operating systems (linux is by far my favorite, though I still know my way around Windows and Mac). Also, I know from experience I'm pretty good at this sort of programming.

Anyway, if you're not familiar with http://cmake.org/, it's a meta build system that generates makefiles and project files for almost every build system and IDE under the sun. It makes solution files for every version of MSVC from version 6 (whenever that dinosaur was made) to version 14 (MSVC 2015 RC). It also makes project files for Eclipse and CodeBlocks, and makefiles for MinGW, NMake, and MSYS. Of course, it makes UNIX makefile, too, and when the UNIX makefiles are run, the output is color-coded and displays a percentage of completion (it's very shiny).

CMake can also be used to generate packaged installers like NSIS installers for windows and .deb files for debian, along with a few others.

I'm putting this under cross platform because the main advantage is it makes it easier to build code on multiple platforms, since when CMake runs it tracks down any build dependencies and generates a platform-specific makefile much like a configure file, except it doesn't care which OS it's on.

Enough of that. My guess is whoever reads this and intends to answer me is probably a programmer and has probably heard of CMake. How much need is there for something like this? Would  you guys use it (assuming it worked)?

I'll probably start poking around the current build system by myself. I remember I tried to do something like this once before, and got the fs2_open executable to compile (can't remember if it ran), but fred2 was a completely different animal. When I last messed with the fs2open code was a couple years ago, but I remember that it was difficult to get a complete list of files that needed to be compiled to build the binaries. Any advice as to where I should start poking around the current build system would be appreciated.

AdmiralRalwood:
https://github.com/asarium/fs2open.github.com/tree/cmake

niffiwan:
Yeah, m!m has already implemented cmake, it just needs more testing on OSX before he's ready to unleash it.

Having said that, do you have any other particular areas of coding interest?  ;7

MasterGeek:
Ah, well... so much for my speech. I search the forum for CMake, and got like 3 hits that seemed to be extremely dated and weren't even talking about porting fs2open to cmake, so I thought nobody was working on it. Anyway, I haven't done much in the way of graphics, but am willing to tackle anything else (and maybe graphics, too, but then I have to learn stuff before I can start hacking). I've done a lot of threading work in the past, and have a pretty good understanding of concurrency and related topics. I have a job as a web developer, and work mostly on the back end of things (think content management and system configuration). Consequently, I'm pretty good when it comes to networking and databases. I also have access to and experience with Linux, Windows, and Mac. I can also get a hold of absolutely any version of MSVC (even the 'Ultimate' editions) though my university. This was the main reason I wanted to take on the CMake project.

If you don't have any good ideas, how about that in-game config system that I've read people dreaming about occasionaly on this forum (the one that's supposed to handle most of the options that are currently command line options)? Is there much work done on that?

AdmiralRalwood:
Unfortunately, the forum search is flat-out broken. You get better results if you use google with "site:hard-light.net".


--- Quote from: MasterGeek on June 11, 2015, 10:41:46 pm ---I've done a lot of threading work in the past, and have a pretty good understanding of concurrency and related topics.

--- End quote ---
Making FSO multithreaded would basically require rewriting the whole thing. I mean, if you want to do that, I won't stop you, but that's pretty much the major reason it hasn't been done already (at some point it was attempted to just multithread the collision detection, but the added overhead from making only that be multithreaded basically removed any performance gains).


--- Quote from: MasterGeek on June 11, 2015, 10:41:46 pm ---Consequently, I'm pretty good when it comes to networking

--- End quote ---
That could be useful; the netcode is in need of an overhaul.


--- Quote from: MasterGeek on June 11, 2015, 10:41:46 pm ---how about that in-game config system that I've read people dreaming about occasionaly on this forum (the one that's supposed to handle most of the options that are currently command line options)? Is there much work done on that?

--- End quote ---
AFAIK no work has been done on that.

Navigation

[0] Message Index

[#] Next page

Go to full version