wutils.py
changeset 4064 10222f483860
parent 3933 3c149230e98a
child 4108 92bae583f934
--- a/wutils.py	Thu Dec 18 22:33:33 2008 -0800
+++ b/wutils.py	Mon Dec 29 13:28:54 2008 +0000
@@ -1,15 +1,22 @@
 import os
 import os.path
-import Params
-import Object
 import sys
 import pproc as subprocess
 import shlex
+
+# WAF modules
 import ccroot
+import Options
+import Utils
+import Logs
+import TaskGen
+import Build
+
 
 # these are set from the main wscript file
 APPNAME=None
 VERSION=None
+
 #
 # The last part of the path name to use to find the regression traces tarball.
 # path will be APPNAME + '-' + VERSION + REGRESSION_SUFFIX + TRACEBALL_SUFFIX,
@@ -20,12 +27,12 @@
 
 
 def get_command_template(*arguments):
-    if Params.g_options.valgrind:
-        if Params.g_options.command_template:
-            Params.fatal("Options --command-template and --valgrind are conflicting")
+    if Options.options.valgrind:
+        if Options.options.command_template:
+            raise Utils.WafError("Options --command-template and --valgrind are conflicting")
         cmd = "valgrind --leak-check=full %s"
     else:
-        cmd = Params.g_options.command_template or '%s'
+        cmd = Options.options.command_template or '%s'
     for arg in arguments:
         cmd = cmd + " " + arg
     return cmd
@@ -33,9 +40,9 @@
 
 
 def find_program(program_name, env):
-    launch_dir = os.path.abspath(Params.g_cwd_launch)
+    launch_dir = os.path.abspath(Options.cwd_launch)
     found_programs = []
-    for obj in Object.g_allobjs:
+    for obj in Build.bld.all_task_gen:
         if not getattr(obj, 'is_ns3_program', False):
             continue
 
@@ -51,7 +58,7 @@
                      % (program_name, found_programs))
 
 def get_proc_env(os_env=None):
-    env = Params.g_build.env_of_name('default')
+    env = Build.bld.env
     if sys.platform == 'linux2':
         pathvar = 'LD_LIBRARY_PATH'
     elif sys.platform == 'darwin':
@@ -63,7 +70,7 @@
     elif sys.platform.startswith('freebsd'):
         pathvar = 'LD_LIBRARY_PATH'
     else:
-        Params.warning(("Don't know how to configure "
+        Logs.warn(("Don't know how to configure "
                         "dynamic library path for the platform %r;"
                         " assuming it's LD_LIBRARY_PATH.") % (sys.platform,))
         pathvar = 'LD_LIBRARY_PATH'        
@@ -78,7 +85,7 @@
         else:
             proc_env[pathvar] = os.pathsep.join(list(env['NS3_MODULE_PATH']))
 
-    pymoddir = Params.g_build.m_curdirnode.find_dir('bindings/python').abspath(env)
+    pymoddir = Build.bld.path.find_dir('bindings/python').abspath(env)
     if 'PYTHONPATH' in proc_env:
         proc_env['PYTHONPATH'] = os.pathsep.join([pymoddir] + [proc_env['PYTHONPATH']])
     else:
@@ -88,10 +95,10 @@
 
 def run_argv(argv, os_env=None):
     proc_env = get_proc_env(os_env)
-    #env = Params.g_build.env_of_name('default')
+    #env = Build.bld.env
     retval = subprocess.Popen(argv, env=proc_env).wait()
     if retval:
-        Params.fatal("Command %s exited with code %i" % (argv, retval))
+        raise Utils.WafError("Command %s exited with code %i" % (argv, retval))
     return retval
 
 def get_run_program(program_string, command_template=None):
@@ -100,7 +107,7 @@
     run_program(program_string, command_template).
     """
     #print "get_run_program_argv(program_string=%r, command_template=%r)" % (program_string, command_template)
-    env = Params.g_build.env_of_name('default')
+    env = Build.bld.env
 
     if command_template in (None, '%s'):
         argv = shlex.split(program_string)
@@ -109,12 +116,13 @@
         try:
             program_obj = find_program(program_name, env)
         except ValueError, ex:
-            Params.fatal(str(ex))
+            raise Utils.WafError(str(ex))
 
-        try:
-            program_node = program_obj.path.find_build(ccroot.get_target_name(program_obj))
-        except AttributeError:
-            Params.fatal("%s does not appear to be a program" % (program_name,))
+        program_node = program_obj.path.find_or_declare(ccroot.get_target_name(program_obj))
+        #try:
+        #    program_node = program_obj.path.find_build(ccroot.get_target_name(program_obj))
+        #except AttributeError:
+        #    raise Utils.WafError("%s does not appear to be a program" % (program_name,))
 
         execvec = [program_node.abspath(env)] + argv[1:]
 
@@ -124,11 +132,13 @@
         try:
             program_obj = find_program(program_name, env)
         except ValueError, ex:
-            Params.fatal(str(ex))
-        try:
-            program_node = program_obj.path.find_build(ccroot.get_target_name(program_obj))
-        except AttributeError:
-            Params.fatal("%s does not appear to be a program" % (program_name,))
+            raise Utils.WafError(str(ex))
+
+        program_node = program_obj.path.find_or_declare(ccroot.get_target_name(program_obj))
+        #try:
+        #    program_node = program_obj.path.find_build(ccroot.get_target_name(program_obj))
+        #except AttributeError:
+        #    raise Utils.WafError("%s does not appear to be a program" % (program_name,))
 
         execvec = shlex.split(command_template % (program_node.abspath(env),))
     return program_name, execvec
@@ -142,10 +152,10 @@
     """
     dummy_program_name, execvec = get_run_program(program_string, command_template)
     former_cwd = os.getcwd()
-    if (Params.g_options.cwd_launch):
-        os.chdir(Params.g_options.cwd_launch)
+    if (Options.options.cwd_launch):
+        os.chdir(Options.options.cwd_launch)
     else:
-        os.chdir(Params.g_cwd_launch)
+        os.chdir(Options.cwd_launch)
     try:
         retval = run_argv(execvec)
     finally:
@@ -156,14 +166,14 @@
 
 
 def run_python_program(program_string):
-    env = Params.g_build.env_of_name('default')
+    env = Build.bld.env
     execvec = shlex.split(program_string)
 
     former_cwd = os.getcwd()
-    if (Params.g_options.cwd_launch):
-        os.chdir(Params.g_options.cwd_launch)
+    if (Options.options.cwd_launch):
+        os.chdir(Options.options.cwd_launch)
     else:
-        os.chdir(Params.g_cwd_launch)
+        os.chdir(Options.cwd_launch)
     try:
         retval = run_argv([env['PYTHON']] + execvec)
     finally: