parameters: (self)
return_statement: return dep_to_git
docstring: For each direct dependency of the currently build manifest check if it
          is also cargo-builded and if yes then extract it's git configs and
          install dir
docstring_summary: For each direct dependency of the currently build manifest check if it
          is also cargo-builded and if yes then extract it's git configs and
          install dir
docstring_tokens: For each direct dependency of the currently build manifest check if it is also cargo - builded and if yes then extract it s git configs and install dir
function: def _resolve_dep_to_git(self):
          """
          For each direct dependency of the currently build manifest check if it
          is also cargo-builded and if yes then extract it's git configs and
          install dir
          """
          dependencies = self.manifest.get_dependencies(self.ctx)
          if not dependencies:
              return []
  
          dep_to_git = {}
          for dep in dependencies:
              dep_manifest = self.loader.load_manifest(dep)
              dep_builder = dep_manifest.get("build", "builder", ctx=self.ctx)
              if dep_builder not in ["cargo", "nop"] or dep == "rust":
                  # This is a direct dependency, but it is not build with cargo
                  # and it is not simply copying files with nop, so ignore it.
                  # The "rust" dependency is an exception since it contains the
                  # toolchain.
                  continue
  
              git_conf = dep_manifest.get_section_as_dict("git", self.ctx)
              if "repo_url" not in git_conf:
                  raise Exception(
                      "A cargo dependency requires git.repo_url to be defined."
                  )
              source_dir = self.loader.get_project_install_dir(dep_manifest)
              if dep_builder == "cargo":
                  source_dir = os.path.join(source_dir, "source")
              git_conf["source_dir"] = source_dir
              dep_to_git[dep] = git_conf
          return dep_to_git
function_tokens: def _resolve_dep_to_git ( self ) : dependencies = self . manifest . get_dependencies ( self . ctx ) if not dependencies : return [ ] dep_to_git = { } for dep in dependencies : dep_manifest = self . loader . load_manifest ( dep ) dep_builder = dep_manifest . get ( "build" , "builder" , ctx = self . ctx ) if dep_builder not in [ "cargo" , "nop" ] or dep == "rust" : # This is a direct dependency, but it is not build with cargo # and it is not simply copying files with nop, so ignore it. # The "rust" dependency is an exception since it contains the # toolchain. continue git_conf = dep_manifest . get_section_as_dict ( "git" , self . ctx ) if "repo_url" not in git_conf : raise Exception ( "A cargo dependency requires git.repo_url to be defined." ) source_dir = self . loader . get_project_install_dir ( dep_manifest ) if dep_builder == "cargo" : source_dir = os . path . join ( source_dir , "source" ) git_conf [ "source_dir" ] = source_dir dep_to_git [ dep ] = git_conf return dep_to_git