From 84c6f9729dbbc175431874957d0654310410bd6f Mon Sep 17 00:00:00 2001 From: Luca Falavigna Date: Thu, 10 Feb 2011 23:18:10 +0100 Subject: Imported Upstream version 2.0.1 --- doc/user/build-install.in | 18 ++++++------- doc/user/build-install.xml | 18 ++++++------- doc/user/main.xml | 4 +-- doc/user/tasks.in | 67 +++++++++++++++++++++++++++++++++++++++++++++- doc/user/tasks.xml | 58 ++++++++++++++++++++++++++++++++++++++- 5 files changed, 143 insertions(+), 22 deletions(-) (limited to 'doc/user') diff --git a/doc/user/build-install.in b/doc/user/build-install.in index 05ead9d..8d1c005 100644 --- a/doc/user/build-install.in +++ b/doc/user/build-install.in @@ -198,7 +198,7 @@ - # rpm -Uvh scons-2.0.0.final.0-1.noarch.rpm + # rpm -Uvh scons-2.0.1-1.noarch.rpm @@ -260,7 +260,7 @@ &SCons; provides a Windows installer that makes installation extremely easy. - Download the scons-2.0.0.final.0.win32.exe + Download the scons-2.0.1.win32.exe file from the &SCons; download page at http://www.scons.org/download.php. Then all you need to do is execute the file @@ -370,8 +370,8 @@ The first step is to download either the - scons-2.0.0.final.0.tar.gz - or scons-2.0.0.final.0.zip, + scons-2.0.1.tar.gz + or scons-2.0.1.zip, which are available from the SCons download page at http://www.scons.org/download.html. @@ -384,7 +384,7 @@ on Linux or UNIX, or WinZip on Windows. This will create a directory called - scons-2.0.0.final.0, + scons-2.0.1, usually in your local directory. Then change your working directory to that directory and install &SCons; by executing the following commands: @@ -392,7 +392,7 @@ - # cd scons-2.0.0.final.0 + # cd scons-2.0.1 # python setup.py install @@ -460,9 +460,9 @@ This will install the &SCons; build engine in the - /usr/lib/scons-2.0.0.final.0 + /usr/lib/scons-2.0.1 or - C:\Python25\scons-2.0.0.final.0 + C:\Python25\scons-2.0.1 directory, for example. @@ -519,7 +519,7 @@ relative to the specified prefix. Adding to the above example would install the build engine in - /opt/scons/lib/scons-2.0.0.final.0. + /opt/scons/lib/scons-2.0.1. diff --git a/doc/user/build-install.xml b/doc/user/build-install.xml index 05ead9d..8d1c005 100644 --- a/doc/user/build-install.xml +++ b/doc/user/build-install.xml @@ -198,7 +198,7 @@ - # rpm -Uvh scons-2.0.0.final.0-1.noarch.rpm + # rpm -Uvh scons-2.0.1-1.noarch.rpm @@ -260,7 +260,7 @@ &SCons; provides a Windows installer that makes installation extremely easy. - Download the scons-2.0.0.final.0.win32.exe + Download the scons-2.0.1.win32.exe file from the &SCons; download page at http://www.scons.org/download.php. Then all you need to do is execute the file @@ -370,8 +370,8 @@ The first step is to download either the - scons-2.0.0.final.0.tar.gz - or scons-2.0.0.final.0.zip, + scons-2.0.1.tar.gz + or scons-2.0.1.zip, which are available from the SCons download page at http://www.scons.org/download.html. @@ -384,7 +384,7 @@ on Linux or UNIX, or WinZip on Windows. This will create a directory called - scons-2.0.0.final.0, + scons-2.0.1, usually in your local directory. Then change your working directory to that directory and install &SCons; by executing the following commands: @@ -392,7 +392,7 @@ - # cd scons-2.0.0.final.0 + # cd scons-2.0.1 # python setup.py install @@ -460,9 +460,9 @@ This will install the &SCons; build engine in the - /usr/lib/scons-2.0.0.final.0 + /usr/lib/scons-2.0.1 or - C:\Python25\scons-2.0.0.final.0 + C:\Python25\scons-2.0.1 directory, for example. @@ -519,7 +519,7 @@ relative to the specified prefix. Adding to the above example would install the build engine in - /opt/scons/lib/scons-2.0.0.final.0. + /opt/scons/lib/scons-2.0.1. diff --git a/doc/user/main.xml b/doc/user/main.xml index 00b8268..fbc28df 100644 --- a/doc/user/main.xml +++ b/doc/user/main.xml @@ -122,10 +122,10 @@ Revision &buildrevision; (&builddate;) - 2004, 2005, 2006, 2007, 2008 + 2004, 2005, 2006, 2007, 2008, 2009, 2010 - 2004, 2005, 2006, 2007, 2008 + 2004, 2005, 2006, 2007, 2008, 2009, 2010 Steven Knight diff --git a/doc/user/tasks.in b/doc/user/tasks.in index 2945d1c..8842dcd 100644 --- a/doc/user/tasks.in +++ b/doc/user/tasks.in @@ -29,7 +29,7 @@ on as they become more complex. Most build tools have special purpose constructs for performing these tasks, but since &SConscript; files are &Python; scripts, you can use more flexible built-in &Python; services to perform these tasks. This appendix lists a number of these -tasks and how to implement them in &Python;. +tasks and how to implement them in &Python; and &SCons;. @@ -79,3 +79,68 @@ output output = os.popen(command).read() + + +Generating source code: how code can be generated and used by SCons + + + +The Copy builders here could be any arbitrary shell or python function +that produces one or more files. This example shows how to create +those files and use them in &SCons;. + + + + + +#### SConstruct +env = Environment() +env.Append(CPPPATH = "#") + +## Header example +env.Append(BUILDERS = + {'Copy1' : Builder(action = 'cat < $SOURCE > $TARGET', + suffix='.h', src_suffix='.bar')}) +env.Copy1('test.bar') # produces test.h from test.bar. +env.Program('app','main.cpp') # indirectly depends on test.bar + +## Source file example +env.Append(BUILDERS = + {'Copy2' : Builder(action = 'cat < $SOURCE > $TARGET', + suffix='.cpp', src_suffix='.bar2')}) +foo = env.Copy2('foo.bar2') # produces foo.cpp from foo.bar2. +env.Program('app2',['main2.cpp'] + foo) # compiles main2.cpp and foo.cpp into app2. + + + +#include "test.h" + + +// nothing here + + +//// main2.cpp + + +// nothing here + + + + + +Where main.cpp looks like this: + + + + + + + +produces this: + + + + scons -Q + + + diff --git a/doc/user/tasks.xml b/doc/user/tasks.xml index 2945d1c..2b2eb0b 100644 --- a/doc/user/tasks.xml +++ b/doc/user/tasks.xml @@ -29,7 +29,7 @@ on as they become more complex. Most build tools have special purpose constructs for performing these tasks, but since &SConscript; files are &Python; scripts, you can use more flexible built-in &Python; services to perform these tasks. This appendix lists a number of these -tasks and how to implement them in &Python;. +tasks and how to implement them in &Python; and &SCons;. @@ -79,3 +79,59 @@ output output = os.popen(command).read() + + +Generating source code: how code can be generated and used by SCons + + + +The Copy builders here could be any arbitrary shell or python function +that produces one or more files. This example shows how to create +those files and use them in &SCons;. + + + + +#### SConstruct +env = Environment() +env.Append(CPPPATH = "#") + +## Header example +env.Append(BUILDERS = + {'Copy1' : Builder(action = 'cat < $SOURCE > $TARGET', + suffix='.h', src_suffix='.bar')}) +env.Copy1('test.bar') # produces test.h from test.bar. +env.Program('app','main.cpp') # indirectly depends on test.bar + +## Source file example +env.Append(BUILDERS = + {'Copy2' : Builder(action = 'cat < $SOURCE > $TARGET', + suffix='.cpp', src_suffix='.bar2')}) +foo = env.Copy2('foo.bar2') # produces foo.cpp from foo.bar2. +env.Program('app2',['main2.cpp'] + foo) # compiles main2.cpp and foo.cpp into app2. + + + + +Where main.cpp looks like this: + + + + + +#include "test.h" + + + +produces this: + + + + % scons -Q + cc -o app main.cpp + cat < foo.bar2 > foo.cpp + cc -o app2 main2.cpp foo.cpp + cat < test.bar > test.h + + + -- cgit v1.2.3