parameters: (self, project_module, parent_module)
docstring: Make 'project-module' inherit attributes of project
          root and parent module.
docstring_summary: Make 'project-module' inherit attributes of project
          root and parent module.
docstring_tokens: Make project - module inherit attributes of project root and parent module .
function: def inherit_attributes(self, project_module, parent_module):
          """Make 'project-module' inherit attributes of project
          root and parent module."""
          assert isinstance(project_module, basestring)
          assert isinstance(parent_module, basestring)
  
          attributes = self.module2attributes[project_module]
          pattributes = self.module2attributes[parent_module]
  
          # Parent module might be locationless user-config.
          # FIXME:
          #if [ modules.binding $(parent-module) ]
          #{
          #    $(attributes).set parent : [ path.parent
          #                                 [ path.make [ modules.binding $(parent-module) ] ] ] ;
          #    }
  
          attributes.set("project-root", pattributes.get("project-root"), exact=True)
          attributes.set("default-build", pattributes.get("default-build"), exact=True)
          attributes.set("requirements", pattributes.get("requirements"), exact=True)
          attributes.set("usage-requirements",
                         pattributes.get("usage-requirements"), exact=1)
  
          parent_build_dir = pattributes.get("build-dir")
  
          if parent_build_dir:
          # Have to compute relative path from parent dir to our dir
          # Convert both paths to absolute, since we cannot
          # find relative path from ".." to "."
  
               location = attributes.get("location")
               parent_location = pattributes.get("location")
  
               our_dir = os.path.join(os.getcwd(), location)
               parent_dir = os.path.join(os.getcwd(), parent_location)
  
               build_dir = os.path.join(parent_build_dir,
                                        os.path.relpath(our_dir, parent_dir))
               attributes.set("build-dir", build_dir, exact=True)
function_tokens: def inherit_attributes ( self , project_module , parent_module ) : assert isinstance ( project_module , basestring ) assert isinstance ( parent_module , basestring ) attributes = self . module2attributes [ project_module ] pattributes = self . module2attributes [ parent_module ] # Parent module might be locationless user-config. # FIXME: #if [ modules.binding $(parent-module) ] #{ #    $(attributes).set parent : [ path.parent #                                 [ path.make [ modules.binding $(parent-module) ] ] ] ; #    } attributes . set ( "project-root" , pattributes . get ( "project-root" ) , exact = True ) attributes . set ( "default-build" , pattributes . get ( "default-build" ) , exact = True ) attributes . set ( "requirements" , pattributes . get ( "requirements" ) , exact = True ) attributes . set ( "usage-requirements" , pattributes . get ( "usage-requirements" ) , exact = 1 ) parent_build_dir = pattributes . get ( "build-dir" ) if parent_build_dir : # Have to compute relative path from parent dir to our dir # Convert both paths to absolute, since we cannot # find relative path from ".." to "." location = attributes . get ( "location" ) parent_location = pattributes . get ( "location" ) our_dir = os . path . join ( os . getcwd ( ) , location ) parent_dir = os . path . join ( os . getcwd ( ) , parent_location ) build_dir = os . path . join ( parent_build_dir , os . path . relpath ( our_dir , parent_dir ) ) attributes . set ( "build-dir" , build_dir , exact = True )