parameters: (target_list, target_dicts, options, msvs_version)
return_statement: return projects
docstring: Create a MSVSProject object for the targets found in target list.
  
    Arguments:
      target_list: the list of targets to generate project objects for.
      target_dicts: the dictionary of specifications.
      options: global generator options.
      msvs_version: the MSVSVersion object.
    Returns:
      A set of created projects, keyed by target.
docstring_summary: Create a MSVSProject object for the targets found in target list.
docstring_tokens: Create a MSVSProject object for the targets found in target list .
function: def _CreateProjectObjects(target_list, target_dicts, options, msvs_version):
      """Create a MSVSProject object for the targets found in target list.
  
    Arguments:
      target_list: the list of targets to generate project objects for.
      target_dicts: the dictionary of specifications.
      options: global generator options.
      msvs_version: the MSVSVersion object.
    Returns:
      A set of created projects, keyed by target.
    """
      global fixpath_prefix
      # Generate each project.
      projects = {}
      for qualified_target in target_list:
          spec = target_dicts[qualified_target]
          proj_path, fixpath_prefix = _GetPathOfProject(
              qualified_target, spec, options, msvs_version
          )
          guid = _GetGuidOfProject(proj_path, spec)
          overrides = _GetPlatformOverridesOfProject(spec)
          build_file = gyp.common.BuildFile(qualified_target)
          # Create object for this project.
          target_name = spec["target_name"]
          if spec["toolset"] == "host":
              target_name += "_host"
          obj = MSVSNew.MSVSProject(
              proj_path,
              name=target_name,
              guid=guid,
              spec=spec,
              build_file=build_file,
              config_platform_overrides=overrides,
              fixpath_prefix=fixpath_prefix,
          )
          # Set project toolset if any (MS build only)
          if msvs_version.UsesVcxproj():
              obj.set_msbuild_toolset(
                  _GetMsbuildToolsetOfProject(proj_path, spec, msvs_version)
              )
          projects[qualified_target] = obj
      # Set all the dependencies, but not if we are using an external builder like
      # ninja
      for project in projects.values():
          if not project.spec.get("msvs_external_builder"):
              deps = project.spec.get("dependencies", [])
              deps = [projects[d] for d in deps]
              project.set_dependencies(deps)
      return projects
function_tokens: def _CreateProjectObjects ( target_list , target_dicts , options , msvs_version ) : global fixpath_prefix # Generate each project. projects = { } for qualified_target in target_list : spec = target_dicts [ qualified_target ] proj_path , fixpath_prefix = _GetPathOfProject ( qualified_target , spec , options , msvs_version ) guid = _GetGuidOfProject ( proj_path , spec ) overrides = _GetPlatformOverridesOfProject ( spec ) build_file = gyp . common . BuildFile ( qualified_target ) # Create object for this project. target_name = spec [ "target_name" ] if spec [ "toolset" ] == "host" : target_name += "_host" obj = MSVSNew . MSVSProject ( proj_path , name = target_name , guid = guid , spec = spec , build_file = build_file , config_platform_overrides = overrides , fixpath_prefix = fixpath_prefix , ) # Set project toolset if any (MS build only) if msvs_version . UsesVcxproj ( ) : obj . set_msbuild_toolset ( _GetMsbuildToolsetOfProject ( proj_path , spec , msvs_version ) ) projects [ qualified_target ] = obj # Set all the dependencies, but not if we are using an external builder like # ninja for project in projects . values ( ) : if not project . spec . get ( "msvs_external_builder" ) : deps = project . spec . get ( "dependencies" , [ ] ) deps = [ projects [ d ] for d in deps ] project . set_dependencies ( deps ) return projects