Ejemplo n.º 1
0
 private XElement GetSpecFilePipDetails(SpecFilePip pip)
 {
     return(m_html.CreateBlock(
                "SpecFilePip Details",
                m_html.CreateRow("SpecFile", pip.SpecFile),
                m_html.CreateRow("Definition File", pip.DefinitionLocation.Path),
                m_html.CreateRow("Definition ", pip.DefinitionLocation),
                m_html.CreateRow("Module", GetModuleName(pip.OwningModule))));
 }
Ejemplo n.º 2
0
 private static SpecFileSpecificDetails CreateSpecFileSpecificDetails(SpecFilePip pip, PathTable pathTable)
 {
     return(new SpecFileSpecificDetails
     {
         SpecFile = CreateString(pip.SpecFile.Path, pathTable),
         DefinitionFile = CreateString(pip.DefinitionLocation.Path, pathTable),
         Definition = CreateString(pip.DefinitionLocation),
         Module = pip.OwningModule.Value.Value,
     });
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a new FileReference from a spec file
        /// </summary>
        public static FileReference FromSpecFile(PathTable pathTable, SpecFilePip specFile)
        {
            Contract.Requires(pathTable != null);
            Contract.Requires(specFile != null);

            return(new FileReference
            {
                Id = (int)specFile.PipId.Value,
                Path = specFile.SpecFile.Path.ToString(pathTable),
            });
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Generates the SpecFilePipDetails for a given Pip
        /// </summary>
        public SpecFilePipDetails GenerateSpecFilePipDetails(SpecFilePip pip)
        {
            SpecFilePipDetails specFilePipDetails = new SpecFilePipDetails
            {
                SpecFile           = pip.SpecFile.Path.ToString(PathTable),
                DefinitionFilePath = pip.DefinitionLocation.Path.ToString(PathTable),
                Location           = pip.DefinitionLocation.ToString(PathTable),
                ModuleId           = pip.OwningModule.Value
            };

            return(specFilePipDetails);
        }
Ejemplo n.º 5
0
        /// <inheritdoc/>
        public override IReadOnlySet <FileOrDirectoryArtifact> FilterOutputsCore(IPipFilterContext context, bool negate = false, IList <PipId> constrainingPips = null)
        {
            var matchingSpecFilePipIds = ParallelProcessAllOutputs <PipId>(
                context,
                (pipId, localPips) =>
            {
                if (context.GetPipType(pipId) == PipType.SpecFile)
                {
                    SpecFilePip specFilePip = (SpecFilePip)context.HydratePip(pipId);
                    if (PathMatches(specFilePip.SpecFile.Path, context.PathTable) ^ negate)
                    {
                        localPips.Add(pipId);
                    }
                }
            });

            if (m_specDependencies)
            {
                AddTransitiveSpecDependencies(context, matchingSpecFilePipIds);
            }

            HashSet <PipId> dependenciesWithOutputs =
                m_valueTransitive
                    ? GetDependenciesWithOutputsBehindValueAndSealDirectoryPips(context, matchingSpecFilePipIds)
                    : GetDependenciesWithOutputsForSpecFilePips(context, matchingSpecFilePipIds);

            if (constrainingPips != null)
            {
                dependenciesWithOutputs.IntersectWith(constrainingPips);
            }

            return(ParallelProcessAllOutputs <FileOrDirectoryArtifact>(
                       context,
                       (pipId, localOutputs) => AddOutputs(context, pipId, localOutputs),
                       dependenciesWithOutputs.ToArray()));
        }
Ejemplo n.º 6
0
 /// <inheritdoc />
 public bool AddSpecFile(SpecFilePip specFile)
 {
     Contract.Requires(specFile != null, "Argument specFile cannot be null");
     return(m_builder.AddSpecFile(specFile));
 }
Ejemplo n.º 7
0
 /// <inheritdoc />
 public bool AddSpecFile([NotNull] SpecFilePip specFile)
 {
     AddPip(specFile);
     return(true);
 }
Ejemplo n.º 8
0
 /// <inheritdoc />
 public bool AddSpecFile([NotNull] SpecFilePip specFile) => AddPip(specFile);
Ejemplo n.º 9
0
 private static void SetSpecFilePipDetails(SpecFilePip pip, PipDetails result, PathTable pathTable)
 {
 }