WAF: cleanup the main wscript file by moving the definition of the ns3header object type into src/wscript
authorGustavo J. A. M. Carneiro <gjcarneiro@gmail.com>
Thu, 24 May 2007 17:54:51 +0100
changeset 693 c8fc89076aa2
parent 692 3f03c8c4f381
child 694 bfad4514a789
WAF: cleanup the main wscript file by moving the definition of the ns3header object type into src/wscript
src/wscript
wscript
--- a/src/wscript	Thu May 24 16:15:41 2007 +0200
+++ b/src/wscript	Thu May 24 17:54:51 2007 +0100
@@ -1,9 +1,14 @@
 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
 import os
-import sys
+import shutil
+
+import Action
+import Common
+import Object
 import Params
 
+
 all_modules = [
     'core',
     'common',
@@ -24,6 +29,9 @@
 
 
 def build(bld):
+    Object.register('ns3header', Ns3Header)
+    Action.Action('ns3_headers', func=_ns3_headers_inst, color='BLUE')
+
     env = bld.env_of_name('default')
     for module in all_modules:
         node = bld.m_curdirnode.find_dir(module)
@@ -31,3 +39,51 @@
         env.append_value('NS3_MODULE_PATH', node_path)
     
     bld.add_subdirs(all_modules)
+
+
+class Ns3Header(Object.genobj):
+    """A set of NS-3 header files"""
+    def __init__(self, env=None):
+        Object.genobj.__init__(self, 'other')
+        self.inst_var = 'INCLUDEDIR'
+        self.inst_dir = 'ns3'
+        self.env = env
+        if not self.env:
+            self.env = Params.g_build.m_allenvs['default']
+
+    def apply(self):
+        ns3_dir_node = Params.g_build.m_srcnode.find_dir("ns3")
+        inputs = []
+        outputs = []
+        for filename in self.to_list(self.source):
+            src_node = self.path.find_source(filename)
+            if src_node is None:
+                Params.fatal("source ns3 header file %s not found" % (filename,))
+            dst_node = ns3_dir_node.find_build(os.path.basename(filename))
+            assert dst_node is not None
+            inputs.append(src_node)
+            outputs.append(dst_node)
+        task = self.create_task('ns3_headers', self.env, 1)
+        task.set_inputs(inputs)
+        task.set_outputs(outputs)
+
+    def install(self):
+        for i in self.m_tasks:
+            current = Params.g_build.m_curdirnode
+            lst = map(lambda a: a.relpath_gen(current), i.m_outputs)
+            Common.install_files(self.inst_var, self.inst_dir, lst)
+
+def _ns3_headers_inst(task):
+    assert len(task.m_inputs) == len(task.m_outputs)
+    inputs = [node.srcpath(task.m_env) for node in task.m_inputs]
+    outputs = [node.bldpath(task.m_env) for node in task.m_outputs]
+    for src, dst in zip(inputs, outputs):
+        try:
+            os.chmod(dst, 0600)
+        except OSError:
+            pass
+        shutil.copy2(src, dst)
+        ## make the headers in builddir read-only, to prevent
+        ## accidental modification
+        os.chmod(dst, 0400)
+    return 0
--- a/wscript	Thu May 24 16:15:41 2007 +0200
+++ b/wscript	Thu May 24 17:54:51 2007 +0100
@@ -5,9 +5,6 @@
 
 import Params
 import Object
-import Action
-import Common
-import shutil
 import pproc as subprocess
 
 Params.g_autoconfig = 1
@@ -20,56 +17,6 @@
 srcdir = '.'
 blddir = 'build'
 
-class Ns3Header(Object.genobj):
-    """A set of NS-3 header files"""
-    def __init__(self, env=None):
-        Object.genobj.__init__(self, 'other')
-        self.inst_var = 'INCLUDEDIR'
-        self.inst_dir = 'ns3'
-        self.env = env
-        if not self.env:
-            self.env = Params.g_build.m_allenvs['default']
-
-    def apply(self):
-        ns3_dir_node = Params.g_build.m_srcnode.find_dir("ns3")
-        inputs = []
-        outputs = []
-        for filename in self.to_list(self.source):
-            src_node = self.path.find_source(filename)
-            if src_node is None:
-                Params.fatal("source ns3 header file %s not found" % (filename,))
-            dst_node = ns3_dir_node.find_build(os.path.basename(filename))
-            assert dst_node is not None
-            inputs.append(src_node)
-            outputs.append(dst_node)
-        task = self.create_task('ns3_headers', self.env, 1)
-        task.set_inputs(inputs)
-        task.set_outputs(outputs)
-
-    def install(self):
-        for i in self.m_tasks:
-            current = Params.g_build.m_curdirnode
-            lst = map(lambda a: a.relpath_gen(current), i.m_outputs)
-            Common.install_files(self.inst_var, self.inst_dir, lst)
-
-def _ns3_headers_inst(task):
-    assert len(task.m_inputs) == len(task.m_outputs)
-    inputs = [node.srcpath(task.m_env) for node in task.m_inputs]
-    outputs = [node.bldpath(task.m_env) for node in task.m_outputs]
-    for src, dst in zip(inputs, outputs):
-        try:
-            os.chmod(dst, 0600)
-        except OSError:
-            pass
-        shutil.copy2(src, dst)
-        ## make the headers in builddir read-only, to prevent
-        ## accidental modification
-        os.chmod(dst, 0400)
-    return 0
-
-def init():
-    Object.register('ns3header', Ns3Header)
-    Action.Action('ns3_headers', func=_ns3_headers_inst, color='BLUE')
 
 def set_options(opt):
     # options provided by the modules