Node
File NamesOne of the most common things you can do with a Node is use it to print the file name that the node represents. Keep in mind, though, that because the object returned by a builder call is a list of Nodes, you must use Python subscripts to fetch individual Nodes from the list. For example, the following SConstruct file:
hello_c = File('hello.c') Program(hello_c) classes = Dir('classes') Java(classes, 'src') object_list = Object('hello.c') program_list = Program(object_list) print "The object file is:", object_list[0] print "The program file is:", program_list[0]
Would print the following file names on a POSIX system:
% scons -Q The object file is: hello.o The program file is: hello cc -o hello.o -c hello.c cc -o hello hello.o
And the following file names on a Windows system:
C:\>scons -Q The object file is: hello.obj The program file is: hello.exe cl /Fohello.obj /c hello.c /nologo link /nologo /OUT:hello.exe hello.obj embedManifestExeCheck(target, source, env)
Note that in the above example, the object_list[0] extracts an actual Node object from the list, and the Python print statement converts the object to a string for printing.