[Scons-users] SCons popularity

Damien damien at khubla.com
Thu Jun 4 13:43:56 EDT 2015


Further to what Jason has said (snipped for brevity), the Gentoo and 
Debian articles are narrowly focused on what they want for their 
distribution of Linux.  SCons might not be the ideal tool for Linux 
distribution-specific packages, but who cares?  The underlying argument 
often seems to be "SCons isn't a better implementation of autotools and 
make, so it's bad."  That's not what SCons is for.

If you're developing cross-platform, cross-hardware, software, you're 
possibly signing up for different CPUs, different OS versions, different 
compiler and different run-time versions.  This is not for wimps, but if 
you want to do cross-platform software, you want to use a cross-platform 
build system.  There's a *lot* of ground you might have to cover:  
Microsoft has three major compiler versions in the wild right now, 
VS2010, VS2012 and VS2013.  VS2015 is around the corner (I'm ignoring 
older VS editions that are still used).  Win 7, 8, 8.1 and shortly 10, 
plus Server 2008 versions onwards.  There's what, at least five 
different Linux distributions that make up most of the OSS Posix 
market?  Active GCC versions from 4.4 onwards up to 5.1.  The OSX walled 
garden is easier but it's still different.  Intel supplies compilers for 
all of those platforms too, with a few current versions.  That's just 
software, and doesn't cover the big commercial Unixes.  X86/X64, Arm, 
Power, ATI and Nvidia GPU hardware too.

Cross-platform software is a lot more work.  It just is.  You have to 
invest the same quality of engineering into your cross-platform build 
system as you do in your cross-platform software if you want to get it 
right.  Note I said quality, not quantity.  We found that after a 
considerable amount of initial pain, our SCons build system doesn't 
change much.  New scripts, some new directories, and it just works, 
which means we spend more time on software and almost none on "why isn't 
the left handed soy-bean two-pump vanilla frappacino toolset not 
building?"  We're about to start 32-bit Linux-ARM development and 
because of SCons I suspect it will take only a couple of hours to set up 
the build environment, and not one SConscript in the entire codebase 
will have to change.

Write your own installers using SConscripts, and make them 
configurable.  If you're going open-source, supply the whole build setup 
as part of the package.  You have to do that anyway for Windows and OSX 
because your software isn't distributed by MS and Apple and they don't 
care what you do.  I personally believe that's a better model and more 
responsible, you should know how to make your software build and run on 
whatever you ship for.  You shouldn't offload that to distribution devs.

If you want to do cross-platform software, I'd recommend SCons. Yes, 
it's slower than some more specific alternatives.  But it's consistent, 
flexible and reliable, and for cross-platform you have to have that so 
you can work on your software and not on your build system.

Cheers,

Damien


More information about the Scons-users mailing list