Help needed: Linux/Win32 commandline buildsystem?
#1
This topic is open to everyone, although primarily geared toward experienced Linux developers. I'd like two positives to come from this topic if possible. Listed, in order:

1. Pick a suitable command line buildsystem to use.

I'd like to avoid Configure scripts since those are unix-specific hell meant primarily for allowing base tools and libraries the ability to compile on systems ranging from 1987 DG-UX to modern day. We have no such concerns here. Wink There are quite a few alternatives out there these days, like Scons. There's others too, I know, but I can't think the names off the top of my head. We need a rundown of pros and cons of a few and then decide on one.

2. Appoint a dedicated maintainer of said build system.

Mostly responsible for making sure the build system compiles without error, and issuing patches or filing issues when it doesn't. Most times the buildsystem just needs a couple files added to it, that may have gone overlooked by another dev. On occasion there may be more complicated issues like header file include paths or conflicts.

Let the feedback begin! Smile
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply

Sponsored links

#2
Maybe cmake? I don't like Python -- I using it in one big project and now hate it. But what's more important, it's another dependacy for pcsx2 -- and python is not small (And in Windows it does not installed). For cmake C compiler is already with us.

p.S. And don't forget about Macs.
Reply
#3
(10-12-2009, 03:10 PM)Zeydlitz Wrote: Maybe cmake? I don't like Python -- I using it in one big project and now hate it. But what's more important, it's another dependacy for pcsx2 -- and python is not small (And in Windows it does not installed). For cmake C compiler is already with us.

Yeah, agreed that Scons would be my personal "last choice" because of bloated dependencies and general suckiness of Python (and honestly it's not much better on linux than win32 -- win32 installs fail 80% of the time but in my experience linux installs/upgrades of python fail about 33% of the time due to whatever mysterious "DLL Hell" type of mixed version chaos Sad -- and I don't think we want to add "Python spews lots of mysterious errors regarding missing core packages?!" to our usual compilation reports).

So cmake seems like the #1 candidate. Furthermore there's apparently a good amount of support for it online, such as:

http://wiki.wxwidgets.org/CMake

... which would be a good starting point, I guess.
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#4
Despite the fact that the version of Linux I run has Python as a dependency, I'd agree that I'd like to avoid Python as much as I can.

CMake is what they use on Kde 4. Don't know if that's really a positive or negative.

I recall looking at Rake and Rant for a while, but requiring Ruby for a build system probably isn't a good idea either.

I've also heard of people using ant for building C++ projects, though it was written for Java projects.

Not sure of most of the positives and negatives of the above, though, since I'm used to dealing with autotools (ie: what we used to use in pcsx2).
Reply
#5
Yeah I think we can dismiss Ant and its variants. It tries to use XML as a scripting engine, and that's a concept destined for failure, over-complication, and difficult-to-manage svn-diffs.
Reply
#6
Ok, I revisited the CMake docs and samples, and I'm going to declare it as the best way to go. It has a good design where simple stuff is simple, but more complex things can still be done (with such complexity optionally added later); and it's fairly free of external dependencies other than itself.

So it's an ideal open source design. It'll be easy to get up and running, and then we can improve upon it as needed over time.

So now the #2 question remains: Who wants to volunteer to put something together with CMake, such that PCSX2 and (optionally) its plugins, are compilable from outside the IDE? Smile
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#7
(10-14-2009, 01:07 PM)Air Wrote: Ok, I revisited the CMake docs and samples, and I'm going to declare it as the best way to go. It has a good design where simple stuff is simple, but more complex things can still be done (with such complexity optionally added later); and it's fairly free of external dependencies other than itself.

So it's an ideal open source design. It'll be easy to get up and running, and then we can improve upon it as needed over time.

So now the #2 question remains: Who wants to volunteer to put something together with CMake, such that PCSX2 and (optionally) its plugins, are compilable from outside the IDE? Smile

Yeah, i also vote for cmake, i mostly use it for my other projects i built from ground up Smile

If the convergence of mac port to official is gonna happen i'll have to change the build system anyway, not even talking about wx here, so i'll start working on it anyway.
Reply
#8
so i finally started working on cmake conversion. It turned out to be simpler than i previously thought. I finished converting the build system for zerogs/zzogl which in terms of complexity is similar to pcsx2(e.g. it has all those standard library dependencies and asm files, pcsx2 is just larger in scale mostly), and it works like a charm Smile I still need to try it in linux though as i've only done it for mac Smile But that's next step, i need to merge with zzogl anyway, there's no point in having a completely separate mac version as the differences aren't that drastic.

Anyway, the build system consists of
CMakeLists.txt
Linux/CMakeLists.txt
cmake/FindCG.cmake
cmake/FindGLEW.cmake
cmake/CMakeASM_NASMInformation.cmake
cmake/CMakeDetermineASM_NASMCompiler.cmake
cmake/CMakeTestASM_NASMCompiler.cmake

You can look at them here: http://quant0r.com/cgi-bin/gitweb.cgi?p=...git;a=tree

Comments welcome Smile
Reply
#9
yeah, also builds on linux fine
Reply
#10
More and more GNU/Linux software is converting its build system to cmake because it has many advantages. Nice choice! Smile
Reply




Users browsing this thread: 1 Guest(s)