parameters: (
          self,
          hash_for_rules,
          target_outputs,
          base_dir,
          build_dir,
          output_file,
          toplevel_build,
          output_file_name,
          flavor,
          toplevel_dir=None,
      )
docstring: base_dir: path from source root to directory containing this gyp file,
                    by gyp semantics, all input paths are relative to this
          build_dir: path from source root to build output
          toplevel_dir: path to the toplevel directory
docstring_summary: base_dir: path from source root to directory containing this gyp file,
                    by gyp semantics, all input paths are relative to this
          build_dir: path from source root to build output
          toplevel_dir: path to the toplevel directory
docstring_tokens: base_dir : path from source root to directory containing this gyp file by gyp semantics all input paths are relative to this build_dir : path from source root to build output toplevel_dir : path to the toplevel directory
function: def __init__(
          self,
          hash_for_rules,
          target_outputs,
          base_dir,
          build_dir,
          output_file,
          toplevel_build,
          output_file_name,
          flavor,
          toplevel_dir=None,
      ):
          """
          base_dir: path from source root to directory containing this gyp file,
                    by gyp semantics, all input paths are relative to this
          build_dir: path from source root to build output
          toplevel_dir: path to the toplevel directory
          """
  
          self.hash_for_rules = hash_for_rules
          self.target_outputs = target_outputs
          self.base_dir = base_dir
          self.build_dir = build_dir
          self.ninja = ninja_syntax.Writer(output_file)
          self.toplevel_build = toplevel_build
          self.output_file_name = output_file_name
  
          self.flavor = flavor
          self.abs_build_dir = None
          if toplevel_dir is not None:
              self.abs_build_dir = os.path.abspath(os.path.join(toplevel_dir, build_dir))
          self.obj_ext = ".obj" if flavor == "win" else ".o"
          if flavor == "win":
              # See docstring of msvs_emulation.GenerateEnvironmentFiles().
              self.win_env = {}
              for arch in ("x86", "x64"):
                  self.win_env[arch] = "environment." + arch
  
          # Relative path from build output dir to base dir.
          build_to_top = gyp.common.InvertRelativePath(build_dir, toplevel_dir)
          self.build_to_base = os.path.join(build_to_top, base_dir)
          # Relative path from base dir to build dir.
          base_to_top = gyp.common.InvertRelativePath(base_dir, toplevel_dir)
          self.base_to_build = os.path.join(base_to_top, build_dir)
function_tokens: def __init__ ( self , hash_for_rules , target_outputs , base_dir , build_dir , output_file , toplevel_build , output_file_name , flavor , toplevel_dir = None , ) : self . hash_for_rules = hash_for_rules self . target_outputs = target_outputs self . base_dir = base_dir self . build_dir = build_dir self . ninja = ninja_syntax . Writer ( output_file ) self . toplevel_build = toplevel_build self . output_file_name = output_file_name self . flavor = flavor self . abs_build_dir = None if toplevel_dir is not None : self . abs_build_dir = os . path . abspath ( os . path . join ( toplevel_dir , build_dir ) ) self . obj_ext = ".obj" if flavor == "win" else ".o" if flavor == "win" : # See docstring of msvs_emulation.GenerateEnvironmentFiles(). self . win_env = { } for arch in ( "x86" , "x64" ) : self . win_env [ arch ] = "environment." + arch # Relative path from build output dir to base dir. build_to_top = gyp . common . InvertRelativePath ( build_dir , toplevel_dir ) self . build_to_base = os . path . join ( build_to_top , base_dir ) # Relative path from base dir to build dir. base_to_top = gyp . common . InvertRelativePath ( base_dir , toplevel_dir ) self . base_to_build = os . path . join ( base_to_top , build_dir )