Fetching Values From a Construction Environment

SCons User Guide 0.98.0
Prev | Chapter 7. Construction Environments | Next

# 7.3. Fetching Values From a `Construction Environment`

You can fetch individual construction variables using the normal syntax for accessing individual named items in a Python dictionary:

          env = Environment()
          print "CC is:", env['CC']

This example `SConstruct` file doesn't build anything, but because it's actually a Python script, it will print the value of `$CC` for us:

          % scons -Q
          CC is: cc
          scons: `.' is up to date.

A construction environment, however, is actually an object with associated methods, etc. If you want to have direct access to only the dictionary of construction variables, you can fetch this using the `Dictionary` method:

          env = Environment(FOO = 'foo', BAR = 'bar')
          dict = env.Dictionary()
          for key in ['OBJSUFFIX', 'LIBSUFFIX', 'PROGSUFFIX']:
              print "key = %s, value = %s" % (key, dict[key])

This `SConstruct` file will print the specified dictionary items for us on POSIX systems as follows:

          % scons -Q
          key = OBJSUFFIX, value = .o
          key = LIBSUFFIX, value = .a
          key = PROGSUFFIX, value =
          scons: `.' is up to date.

And on Windows:

          C:\>scons -Q
          key = OBJSUFFIX, value = .obj
          key = LIBSUFFIX, value = .lib
          key = PROGSUFFIX, value = .exe
          scons: `.' is up to date.

If you want to loop through and print the values of all of the construction variables in a construction environment, the Python code to do that in sorted order might look something like:

          env = Environment()
          dict = env.Dictionary()
          keys = dict.keys()
          keys.sort()
          for key in keys:
              print "construction variable = '%s', value = '%s'" % (key, dict[key])

Prev | Home | Next
Copying `Construction Environments` | Up | Expanding Values From a `Construction Environment`