I tried and tried to produce a proof of concept with CMake, but
couldn't find a satisfactory solution for using it with mesa/gallium.
Getting convenience libraries to work with CMake would be so difficult
and hackish, that would defeat the whole point of the exercise.

So I researched for another build system with the desired
characteristics again, and rediscovered scons, http://www.scons.org/ .
I tried using it a few times in the past, and I recall Brian tried
too, but this time it was a pleasant surprise. In a few hours I
managed to get softpipe to build. Supporting convenience libraries was
also easy.

What scons gives new:
- supports many platforms
- out of source file builds (you can now build gallium for dri/with)
- blazing fast (it does not use recursive makefiles, and does parallel
builds too)
- flexible (you have the whole power of a programming language --
Python -- at your disposition)
- it appears it can produce MSVS projects too.

What is less good with scons:
- things like debug/release versions are not done automatically for
you (as in CMake) -- you have to set the compiler flags manually, even
though you always end up doing customizing compiler options anyway
- Scons* files are python scripts, so it requires a bit more typing
(like quotes in filenames), but it doesn't look so strange to the eyes
of a programmer

Brian approved that I commit this to gallium-0.1 branch as an
alternative build system to experiment.

How to use:
- "scons -h" for help
- "scons ." to build
- "scons -c" to clean

You can pass configurations options to scons: "dri=1" "debug=1"
"x86=0", or write them to a config.py file if you than want to pass
them every time. The output build dir will be "build/linux-debug-x86"
etc. depending on the options

I plan to keep supporting and improving, as a second build system.
Things that need to be done is:
- support more drivers (e.g., cell is missing)
- support building drivers out of the tree (i.e., a Gallium3D SDK)
- more auto-detection magic

Feedback, and especially patches, are welcome.

Jose

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to