[Scons-users] download builder - tips
Philipp Kraus
philipp.kraus at flashpixx.de
Sat Apr 6 17:43:33 EDT 2013
On 2013-04-06 02:41:22 +0200, Philipp Kraus said:
> thanks to Dirk and Bill for some nice email. I would like to replace my
> "dirty hacked Scons script" to a little more general code structure and
> would like to send them into the Scons community.
> I'm primary writing C/C++ code and uses Scons on OSX, Linux, Windows
> (MSVC & MinGW) for the building process.
>
> Often there exists on my C/C++ project the problem, that the project
> uses a lot of different libraries eg LAPack, Boost, Dune-FEM .... and
> these libs must be compiled for the project, so I use Scons for
> this building process most with a lot of env.Command code and some
> hacked builders. With a little time, I have forked out my first "hacked
> builder" to a more "Scons-Way-Builder".
> It is a little short builder, which downloads any URL data into a file.
> I have pushed the builder in my repo (
> https://github.com/flashpixx/Storage/blob/master/Scons/site_scons/site_tools/URLDownload.py
> )
> and a test Sconstruct under
> https://github.com/flashpixx/Storage/blob/master/Scons/SConstruct
> This builder replaces the target on default with the filename of the
> URL, the env setting URLDOWNLOAD_USEURLFILENAME (true | false) can be
> enabled / disabled this target replacing
>
> The next forked builders will be an Unpacking builder with flexible
> tool use (eg 7-Zip under Windows, tar / gzip / bzip under *nix) and a
> external builder for compiling extracted sources with cmake, MSVC ...
I need a little help, because I get on my builders a cyclic dependency
on cleaning or on the second run. If I have got a "clean" directory,
everything works fine, the download builder creates
the downloaded file and my unpack builder (
https://github.com/flashpixx/Storage/blob/master/Scons/site_scons/site_tools/Unpack.py
) is run and creates the correct extracting file list.
If I run after the first run, without cleaning the builder script
again, I get an error of the unpack builder that there exists a cyclic
depency, an equal error is shown up, if I run "scons -c".
If I replace in the Unpack.py the line 280 ( return target, source
) to 'return "test", source' the error does not occure, so imho the
problem exists in the emitter. The unpack builder returns a list of
files & directories in an archive and the download builder get the
file. So I hope, that I can download, extract and compile the sources
in one short step. (The unpack builder works at the moment with *nix
systems, Windows calls are not implementated yet)
Thanks for help
Phil
More information about the Scons-users
mailing list