Exemplo n.º 1
0
 /// <nodoc/>
 public MsBuildResolverSettings(
     IMsBuildResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, pathRemapper)
 {
     Root          = pathRemapper.Remap(resolverSettings.Root);
     RootTraversal = resolverSettings.RootTraversal.IsValid? pathRemapper.Remap(resolverSettings.RootTraversal) : Root;
     ModuleName    = resolverSettings.ModuleName;
     AdditionalOutputDirectories = resolverSettings.AdditionalOutputDirectories;
     UntrackedDirectoryScopes    = resolverSettings.UntrackedDirectoryScopes;
     UntrackedFiles                          = resolverSettings.UntrackedFiles;
     UntrackedDirectories                    = resolverSettings.UntrackedDirectories;
     RunInContainer                          = resolverSettings.RunInContainer;
     MsBuildSearchLocations                  = resolverSettings.MsBuildSearchLocations;
     FileNameEntryPoints                     = resolverSettings.FileNameEntryPoints;
     InitialTargets                          = resolverSettings.InitialTargets;
     Environment                             = resolverSettings.Environment;
     GlobalProperties                        = resolverSettings.GlobalProperties;
     LogVerbosity                            = resolverSettings.LogVerbosity;
     EnableBinLogTracing                     = resolverSettings.EnableBinLogTracing;
     EnableEngineTracing                     = resolverSettings.EnableEngineTracing;
     KeepProjectGraphFile                    = resolverSettings.KeepProjectGraphFile;
     EnableTransitiveProjectReferences       = resolverSettings.EnableTransitiveProjectReferences;
     UseLegacyProjectIsolation               = resolverSettings.UseLegacyProjectIsolation;
     DoubleWritePolicy                       = resolverSettings.DoubleWritePolicy;
     AllowProjectsToNotSpecifyTargetProtocol = resolverSettings.AllowProjectsToNotSpecifyTargetProtocol;
     MsBuildRuntime                          = resolverSettings.MsBuildRuntime;
     DotNetSearchLocations                   = resolverSettings.DotNetSearchLocations;
     UseManagedSharedCompilation             = resolverSettings.UseManagedSharedCompilation;
 }
Exemplo n.º 2
0
        /// <nodoc />
        public CacheConfiguration(ICacheConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            CacheConfigFile            = pathRemapper.Remap(template.CacheConfigFile);
            CacheLogFilePath           = pathRemapper.Remap(template.CacheLogFilePath);
            Incremental                = template.Incremental;
            CacheGraph                 = template.CacheGraph;
            CachedGraphPathToLoad      = pathRemapper.Remap(template.CachedGraphPathToLoad);
            CachedGraphIdToLoad        = template.CachedGraphIdToLoad;
            CachedGraphLastBuildLoad   = template.CachedGraphLastBuildLoad;
            CacheSpecs                 = template.CacheSpecs;
            CacheMemoryUsage           = template.CacheMemoryUsage;
            CacheSessionName           = template.CacheSessionName;
            ArtificialCacheMissOptions = template.ArtificialCacheMissOptions == null ? null : new ArtificialCacheMissConfig(template.ArtificialCacheMissOptions);
            CacheSalt             = template.CacheSalt;
            DeterminismProbe      = template.DeterminismProbe;
            HistoricMetadataCache = template.HistoricMetadataCache;
            AllowFetchingCachedGraphFromContentCache = template.AllowFetchingCachedGraphFromContentCache;
            MinimumReplicaCountForStrongGuarantee    = template.MinimumReplicaCountForStrongGuarantee;
            StrongContentGuaranteeRefreshProbability = template.StrongContentGuaranteeRefreshProbability;
            FileChangeTrackingExclusionRoots         = pathRemapper.Remap(template.FileChangeTrackingExclusionRoots);
            FileChangeTrackingInclusionRoots         = pathRemapper.Remap(template.FileChangeTrackingInclusionRoots);
            UseDedupStore = template.UseDedupStore;
        }
Exemplo n.º 3
0
        /// <nodoc />
        public StartupConfiguration(IStartupConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            ConfigFile            = pathRemapper.Remap(template.ConfigFile);
            AdditionalConfigFiles = pathRemapper.Remap(template.AdditionalConfigFiles);
            Properties            = new Dictionary <string, string>();
            foreach (var kv in template.Properties)
            {
                Properties.Add(kv.Key, kv.Value);
            }

            QualifierIdentifiers = new List <string>(template.QualifierIdentifiers);
            ImplicitFilters      = new List <string>(template.ImplicitFilters);
            CurrentHost          = new Host(template.CurrentHost, pathRemapper);

            ABTestingArgs = new Dictionary <string, string>();
            foreach (var kv in template.ABTestingArgs)
            {
                ABTestingArgs.Add(kv.Key, kv.Value);
            }

            ChosenABTestingKey = template.ChosenABTestingKey;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Create new mutable instance from template
        /// </summary>
        /// <remarks>
        /// This is the only class with CommandLineConfiguration as the configuration entrypoint where the pathRemapper is an argument with default value.
        /// If the argument was optional everywhere as well there would be no compiler helping us if someone forgot to pass it along.
        /// This is the main entrypoint so we allow a default value here for convenience
        /// </remarks>
        public ConfigurationImpl(IConfiguration template, PathRemapper pathRemapper = null)
            : base(template, pathRemapper = pathRemapper ?? new PathRemapper())
        {
            Contract.Assume(template != null);

            Qualifiers = new QualifierConfiguration(template.Qualifiers);
            Resolvers  = new List <IResolverSettings>(template.Resolvers.Select(resolver => ResolverSettings.CreateFromTemplate(resolver, pathRemapper)));
            AllowedEnvironmentVariables = new List <string>(template.AllowedEnvironmentVariables);
            Layout       = new LayoutConfiguration(template.Layout, pathRemapper);
            Engine       = new EngineConfiguration(template.Engine, pathRemapper);
            Schedule     = new ScheduleConfiguration(template.Schedule, pathRemapper);
            Sandbox      = new SandboxConfiguration(template.Sandbox, pathRemapper);
            Cache        = new CacheConfiguration(template.Cache, pathRemapper);
            Logging      = new LoggingConfiguration(template.Logging, pathRemapper);
            Export       = new ExportConfiguration(template.Export, pathRemapper);
            Experiment   = new ExperimentalConfiguration(template.Experiment);
            Distribution = new DistributionConfiguration(template.Distribution);
            Viewer       = template.Viewer;
            Projects     = template.Projects?.Select(p => pathRemapper.Remap(p)).ToList();
            Packages     = template.Packages?.Select(p => pathRemapper.Remap(p)).ToList();
            Modules      = template.Modules?.Select(m => pathRemapper.Remap(m)).ToList();
            DisableDefaultSourceResolver = template.DisableDefaultSourceResolver;
            FrontEnd = new FrontEndConfiguration(template.FrontEnd, pathRemapper);
            CommandLineEnabledUnsafeOptions = new List <string>(template.CommandLineEnabledUnsafeOptions);
            Ide              = new IdeConfiguration(template.Ide, pathRemapper);
            InCloudBuild     = template.InCloudBuild;
            ResolverDefaults = new ResolverDefaults(template.ResolverDefaults);
        }
Exemplo n.º 5
0
 /// <nodoc />
 public NinjaResolverSettings(INinjaResolverSettings template, PathRemapper pathRemapper) : base(template, template, pathRemapper)
 {
     Targets              = template.Targets;
     Root                 = pathRemapper.Remap(template.Root);
     ModuleName           = template.ModuleName;
     KeepProjectGraphFile = template.KeepProjectGraphFile;
     SpecFile             = pathRemapper.Remap(template.SpecFile);
     RemoveAllDebugFlags  = template.RemoveAllDebugFlags;
     Environment          = template.Environment;
 }
Exemplo n.º 6
0
        /// <nodoc />
        public IdeConfiguration(IIdeConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);

            IsEnabled       = template.IsEnabled;
            CanWriteToSrc   = template.CanWriteToSrc;
            SolutionName    = pathRemapper.Remap(template.SolutionName);
            SolutionRoot    = pathRemapper.Remap(template.SolutionRoot);
            DotSettingsFile = pathRemapper.Remap(template.DotSettingsFile);
        }
Exemplo n.º 7
0
 /// <nodoc />
 public NinjaResolverSettings(INinjaResolverSettings template, PathRemapper pathRemapper) : base(template, pathRemapper)
 {
     Targets                      = template.Targets;
     ProjectRoot                  = pathRemapper.Remap(template.ProjectRoot);
     ModuleName                   = template.ModuleName;
     KeepToolFiles                = template.KeepToolFiles;
     SpecFile                     = pathRemapper.Remap(template.SpecFile);
     RemoveAllDebugFlags          = template.RemoveAllDebugFlags;
     UntrackingSettings           = template.UntrackingSettings;
     AllowWritableSourceDirectory = template.AllowWritableSourceDirectory;
 }
Exemplo n.º 8
0
        /// <nodoc />
        public FrontEndConfiguration(IFrontEndConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Requires(template != null);
            Contract.Assume(pathRemapper != null);

            ProfileScript               = template.ProfileScript;
            ProfileReportDestination    = pathRemapper.Remap(template.ProfileReportDestination);
            FileToFileReportDestination = pathRemapper.Remap(template.FileToFileReportDestination);

            EnableIncrementalFrontEnd  = template.EnableIncrementalFrontEnd;
            EnableEvaluationThrottling = template.EnableEvaluationThrottling;
            DebugScript                            = template.DebugScript;
            DebuggerBreakOnExit                    = template.DebuggerBreakOnExit;
            DebuggerPort                           = template.DebuggerPort;
            UsePartialEvaluation                   = template.UsePartialEvaluation;
            EnabledPolicyRules                     = new List <string>(template.EnabledPolicyRules);
            MaxFrontEndConcurrency                 = template.MaxFrontEndConcurrency;
            MaxRestoreNugetConcurrency             = template.MaxRestoreNugetConcurrency;
            ThreadPoolMinThreadCountMultiplier     = template.ThreadPoolMinThreadCountMultiplier;
            MaxTypeCheckingConcurrency             = template.MaxTypeCheckingConcurrency;
            DisableLanguagePolicyAnalysis          = template.DisableLanguagePolicyAnalysis;
            DisableIsObsoleteCheckDuringConversion = template.DisableIsObsoleteCheckDuringConversion;
            NameResolutionSemantics                = template.NameResolutionSemantics;
            PreserveFullNames                      = template.PreserveFullNames;
            DisableCycleDetection                  = template.DisableCycleDetection;
            PreserveTrivia                         = template.PreserveTrivia;
            ErrorLimit = template.ErrorLimit;
            ForcePopulatePackageCache = template.ForcePopulatePackageCache;
            UsePackagesFromFileSystem = template.UsePackagesFromFileSystem;
            RespectWeakFingerprintForNugetUpToDateCheck = template.RespectWeakFingerprintForNugetUpToDateCheck;
            ForceGenerateNuGetSpecs             = template.ForceGenerateNuGetSpecs;
            UseLegacyOfficeLogic                = template.UseLegacyOfficeLogic;
            TrackMethodInvocations              = template.TrackMethodInvocations;
            CycleDetectorStartupDelay           = template.CycleDetectorStartupDelay;
            FailIfWorkspaceMemoryIsNotCollected = template.FailIfWorkspaceMemoryIsNotCollected;
            FailIfFrontendMemoryIsNotCollected  = template.FailIfFrontendMemoryIsNotCollected;
            ConstructAndSaveBindingFingerprint  = template.ConstructAndSaveBindingFingerprint;
            UseGraphPatching                       = template.UseGraphPatching;
            CancelParsingOnFirstFailure            = template.CancelParsingOnFirstFailure;
            UseSpecPublicFacadeAndAstWhenAvailable = template.UseSpecPublicFacadeAndAstWhenAvailable;
            CancelEvaluationOnFirstFailure         = template.CancelEvaluationOnFirstFailure;
            ReloadPartialEngineStateWhenPossible   = template.ReloadPartialEngineStateWhenPossible;
            EnableCyclicalFriendModules            = template.EnableCyclicalFriendModules;
            LogStatistics = template.LogStatistics;
            ShowSlowestElementsStatistics    = template.ShowSlowestElementsStatistics;
            ShowLargestFilesStatistics       = template.ShowLargestFilesStatistics;
            ReleaseWorkspaceBeforeEvaluation = template.ReleaseWorkspaceBeforeEvaluation;
            UnsafeOptimizedAstConversion     = template.UnsafeOptimizedAstConversion;
            AllowUnsafeAmbient          = template.AllowUnsafeAmbient;
            GenerateCgManifestForNugets = template.GenerateCgManifestForNugets;
            ValidateCgManifestForNugets = template.ValidateCgManifestForNugets;
            AllowMissingSpecs           = template.AllowMissingSpecs;
        }
Exemplo n.º 9
0
        /// <nodoc />
        public IdeConfiguration(IIdeConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);

            IsEnabled        = template.IsEnabled;
            IsNewEnabled     = template.IsNewEnabled;
            CanWriteToSrc    = template.CanWriteToSrc;
            SolutionName     = pathRemapper.Remap(template.SolutionName);
            SolutionRoot     = pathRemapper.Remap(template.SolutionRoot);
            DotSettingsFile  = pathRemapper.Remap(template.DotSettingsFile);
            TargetFrameworks = new List <string>(template.TargetFrameworks);
        }
Exemplo n.º 10
0
        /// <nodoc />
        public SandboxConfiguration(ISandboxConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            m_unsafeSandboxConfig = new UnsafeSandboxConfiguration(template.UnsafeSandboxConfiguration);

            BreakOnUnexpectedFileAccess  = template.BreakOnUnexpectedFileAccess;
            FileAccessIgnoreCodeCoverage = template.FileAccessIgnoreCodeCoverage;
            FailUnexpectedFileAccesses   = template.FailUnexpectedFileAccesses;
            DefaultTimeout           = template.DefaultTimeout;
            DefaultWarningTimeout    = template.DefaultWarningTimeout;
            TimeoutMultiplier        = template.TimeoutMultiplier;
            WarningTimeoutMultiplier = template.WarningTimeoutMultiplier;
            TimeoutDumpDirectory     = pathRemapper.Remap(template.TimeoutDumpDirectory);
            SurvivingPipProcessChildrenDumpDirectory = pathRemapper.Remap(template.SurvivingPipProcessChildrenDumpDirectory);
            LogObservedFileAccesses            = template.LogObservedFileAccesses;
            LogProcesses                       = template.LogProcesses;
            LogProcessData                     = template.LogProcessData;
            LogFileAccessTables                = template.LogFileAccessTables;
            OutputReportingMode                = template.OutputReportingMode;
            FileSystemMode                     = template.FileSystemMode;
            ForceReadOnlyForRequestedReadWrite = template.ForceReadOnlyForRequestedReadWrite;
            FlushPageCacheToFileSystemOnStoringOutputsToCache = template.FlushPageCacheToFileSystemOnStoringOutputsToCache;
            NormalizeReadTimestamps                          = template.NormalizeReadTimestamps;
            UseLargeNtClosePreallocatedList                  = template.UseLargeNtClosePreallocatedList;
            UseExtraThreadToDrainNtClose                     = template.UseExtraThreadToDrainNtClose;
            MaskUntrackedAccesses                            = template.MaskUntrackedAccesses;
            LogProcessDetouringStatus                        = template.LogProcessDetouringStatus;
            HardExitOnErrorInDetours                         = template.HardExitOnErrorInDetours;
            CheckDetoursMessageCount                         = template.CheckDetoursMessageCount;
            AllowInternalDetoursErrorNotificationFile        = template.AllowInternalDetoursErrorNotificationFile;
            EnforceAccessPoliciesOnDirectoryCreation         = template.EnforceAccessPoliciesOnDirectoryCreation;
            MeasureProcessCpuTimes                           = template.MeasureProcessCpuTimes;
            KextReportQueueSizeMb                            = template.KextReportQueueSizeMb;
            KextEnableReportBatching                         = template.KextEnableReportBatching;
            KextThrottleCpuUsageBlockThresholdPercent        = template.KextThrottleCpuUsageBlockThresholdPercent;
            KextThrottleCpuUsageWakeupThresholdPercent       = template.KextThrottleCpuUsageWakeupThresholdPercent;
            KextThrottleMinAvailableRamMB                    = template.KextThrottleMinAvailableRamMB;
            ContainerConfiguration                           = new SandboxContainerConfiguration(template.ContainerConfiguration);
            AdminRequiredProcessExecutionMode                = template.AdminRequiredProcessExecutionMode;
            RedirectedTempFolderRootForVmExecution           = pathRemapper.Remap(template.RedirectedTempFolderRootForVmExecution);
            RetryOnAzureWatsonExitCode                       = template.RetryOnAzureWatsonExitCode;
            EnsureTempDirectoriesExistenceBeforePipExecution = template.EnsureTempDirectoriesExistenceBeforePipExecution;
            GlobalUnsafeUntrackedScopes                      = pathRemapper.Remap(template.GlobalUnsafeUntrackedScopes);
            PreserveOutputsForIncrementalTool                = template.PreserveOutputsForIncrementalTool;
            GlobalUnsafePassthroughEnvironmentVariables      = new List <string>(template.GlobalUnsafePassthroughEnvironmentVariables);
            VmConcurrencyLimit = template.VmConcurrencyLimit;
            DirectoriesToEnableFullReparsePointParsing = pathRemapper.Remap(template.DirectoriesToEnableFullReparsePointParsing);
            ExplicitlyReportDirectoryProbes            = template.ExplicitlyReportDirectoryProbes;
        }
Exemplo n.º 11
0
        /// <nodoc />
        public Mount(IMount template, PathRemapper pathRemapper)
            : base(template, pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            Name = pathRemapper.Remap(template.Name);
            Path = pathRemapper.Remap(template.Path);
            TrackSourceFileChanges = template.TrackSourceFileChanges;
            IsWritable             = template.IsWritable;
            IsReadable             = template.IsReadable;
            IsSystem             = template.IsSystem;
            IsScrubbable         = template.IsScrubbable;
            AllowCreateDirectory = template.AllowCreateDirectory;
        }
Exemplo n.º 12
0
        /// <nodoc />
        public SandboxConfiguration(ISandboxConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            m_unsafeSandboxConfig = new UnsafeSandboxConfiguration(template.UnsafeSandboxConfiguration);

            DebugInstantPipOutputs       = template.DebugInstantPipOutputs;
            BreakOnUnexpectedFileAccess  = template.BreakOnUnexpectedFileAccess;
            FileAccessIgnoreCodeCoverage = template.FileAccessIgnoreCodeCoverage;
            FailUnexpectedFileAccesses   = template.FailUnexpectedFileAccesses;
            DefaultTimeout                     = template.DefaultTimeout;
            DefaultWarningTimeout              = template.DefaultWarningTimeout;
            TimeoutMultiplier                  = template.TimeoutMultiplier;
            WarningTimeoutMultiplier           = template.WarningTimeoutMultiplier;
            TimeoutDumpDirectory               = pathRemapper.Remap(template.TimeoutDumpDirectory);
            LogObservedFileAccesses            = template.LogObservedFileAccesses;
            LogProcesses                       = template.LogProcesses;
            LogProcessData                     = template.LogProcessData;
            LogFileAccessTables                = template.LogFileAccessTables;
            OutputReportingMode                = template.OutputReportingMode;
            FileSystemMode                     = template.FileSystemMode;
            ForceReadOnlyForRequestedReadWrite = template.ForceReadOnlyForRequestedReadWrite;
            FlushPageCacheToFileSystemOnStoringOutputsToCache = template.FlushPageCacheToFileSystemOnStoringOutputsToCache;
            NormalizeReadTimestamps                   = template.NormalizeReadTimestamps;
            UseLargeNtClosePreallocatedList           = template.UseLargeNtClosePreallocatedList;
            UseExtraThreadToDrainNtClose              = template.UseExtraThreadToDrainNtClose;
            MaskUntrackedAccesses                     = template.MaskUntrackedAccesses;
            LogProcessDetouringStatus                 = template.LogProcessDetouringStatus;
            HardExitOnErrorInDetours                  = template.HardExitOnErrorInDetours;
            CheckDetoursMessageCount                  = template.CheckDetoursMessageCount;
            AllowInternalDetoursErrorNotificationFile = template.AllowInternalDetoursErrorNotificationFile;
            CrashOnCBSSOOMError = template.CrashOnCBSSOOMError;
            EnforceAccessPoliciesOnDirectoryCreation = template.EnforceAccessPoliciesOnDirectoryCreation;
            NumberOfKextConnections = template.NumberOfKextConnections;
            ReportQueueSizeMb       = template.ReportQueueSizeMb;
        }
Exemplo n.º 13
0
 /// <nodoc/>
 public JavaScriptResolverSettings(
     IJavaScriptResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, pathRemapper)
 {
     Root       = pathRemapper.Remap(resolverSettings.Root);
     ModuleName = resolverSettings.ModuleName;
     UntrackedDirectoryScopes       = resolverSettings.UntrackedDirectoryScopes;
     UntrackedFiles                 = resolverSettings.UntrackedFiles;
     UntrackedDirectories           = resolverSettings.UntrackedDirectories;
     UntrackedGlobalDirectoryScopes = resolverSettings.UntrackedGlobalDirectoryScopes;
     Environment                 = resolverSettings.Environment;
     KeepProjectGraphFile        = resolverSettings.KeepProjectGraphFile;
     NodeExeLocation             = resolverSettings.NodeExeLocation;
     AdditionalOutputDirectories = resolverSettings.AdditionalOutputDirectories;
     Execute        = resolverSettings.Execute;
     CustomCommands = resolverSettings.CustomCommands;
     Exports        = resolverSettings.Exports;
     WritingToStandardErrorFailsExecution = resolverSettings.WritingToStandardErrorFailsExecution;
     DoubleWritePolicy = resolverSettings.DoubleWritePolicy;
     CustomScheduling  = resolverSettings.CustomScheduling;
     ChildProcessesToBreakawayFromSandbox = resolverSettings.ChildProcessesToBreakawayFromSandbox;
     CustomScripts    = resolverSettings.CustomScripts;
     SuccessExitCodes = resolverSettings.SuccessExitCodes;
     RetryExitCodes   = resolverSettings.RetryExitCodes;
     ProcessRetries   = resolverSettings.ProcessRetries;
 }
Exemplo n.º 14
0
        private static DiscriminatingUnion <AbsolutePath, IInlineModuleDefinition> RemapModule(
            DiscriminatingUnion <AbsolutePath, IInlineModuleDefinition> fileOrInlineModule,
            PathRemapper pathRemapper)
        {
            var fileOrInlineModuleValue = fileOrInlineModule?.GetValue();

            if (fileOrInlineModuleValue == null)
            {
                return(null);
            }

            if (fileOrInlineModuleValue is AbsolutePath path)
            {
                return(new DiscriminatingUnion <AbsolutePath, IInlineModuleDefinition>(pathRemapper.Remap(path)));
            }

            var inlineModuleDefinition = (IInlineModuleDefinition)fileOrInlineModuleValue;

            var remappedInlineModuleDefinition = new InlineModuleDefinition
            {
                ModuleName = inlineModuleDefinition.ModuleName,
                Projects   = inlineModuleDefinition.Projects?.Select(project => pathRemapper.Remap(project)).ToList()
            };

            return(new DiscriminatingUnion <AbsolutePath, IInlineModuleDefinition>(remappedInlineModuleDefinition));
        }
Exemplo n.º 15
0
        /// <nodoc />
        public ScheduleConfiguration(IScheduleConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);

            MaxProcesses               = template.MaxProcesses;
            MaxLightProcesses          = template.MaxLightProcesses;
            MaxIO                      = template.MaxIO;
            MaxChooseWorkerCpu         = template.MaxChooseWorkerCpu;
            MaxChooseWorkerCacheLookup = template.MaxChooseWorkerCacheLookup;

            MaxCacheLookup         = template.MaxCacheLookup;
            MaxMaterialize         = template.MaxMaterialize;
            EnvironmentFingerprint = template.EnvironmentFingerprint;

            DisableProcessRetryOnResourceExhaustion = template.DisableProcessRetryOnResourceExhaustion;
            StopOnFirstError = template.StopOnFirstError;
            LowPriority      = template.LowPriority;
            EnableLazyOutputMaterialization = template.EnableLazyOutputMaterialization;
            ForceSkipDependencies           = template.ForceSkipDependencies;
            UseHistoricalPerformanceInfo    = template.UseHistoricalPerformanceInfo;
            RequiredOutputMaterialization   = template.RequiredOutputMaterialization;
            TreatDirectoryAsAbsentFileOnHashingInputContent = template.TreatDirectoryAsAbsentFileOnHashingInputContent;
            MaximumRamUtilizationPercentage = template.MaximumRamUtilizationPercentage;
            MinimumTotalAvailableRamMb      = template.MinimumTotalAvailableRamMb;
            AllowCopySymlink            = template.AllowCopySymlink;
            AdaptiveIO                  = template.AdaptiveIO;
            ReuseOutputsOnDisk          = template.ReuseOutputsOnDisk;
            UseHistoricalRamUsageInfo   = template.UseHistoricalRamUsageInfo;
            VerifyCacheLookupPin        = template.VerifyCacheLookupPin;
            PinCachedOutputs            = template.PinCachedOutputs;
            CanonicalizeFilterOutputs   = template.CanonicalizeFilterOutputs;
            ForceUseEngineInfoFromCache = template.ForceUseEngineInfoFromCache;

            UnsafeDisableGraphPostValidation = template.UnsafeDisableGraphPostValidation;

            ProcessRetries                       = template.ProcessRetries;
            UnsafeLazySymlinkCreation            = template.UnsafeLazySymlinkCreation;
            UnexpectedSymlinkAccessReportingMode = template.UnexpectedSymlinkAccessReportingMode;
            StoreOutputsToCache                  = template.StoreOutputsToCache;

            EnableLazyWriteFileMaterialization = template.EnableLazyWriteFileMaterialization;
            WriteIpcOutput = template.WriteIpcOutput;
            OutputMaterializationExclusionRoots = pathRemapper.Remap(template.OutputMaterializationExclusionRoots);

            IncrementalScheduling = template.IncrementalScheduling;
            GraphAgnosticIncrementalScheduling = template.GraphAgnosticIncrementalScheduling;
            ComputePipStaticFingerprints       = template.ComputePipStaticFingerprints;
            LogPipStaticFingerprintTexts       = template.LogPipStaticFingerprintTexts;

            CreateHandleWithSequentialScanOnHashingOutputFiles   = template.CreateHandleWithSequentialScanOnHashingOutputFiles;
            OutputFileExtensionsForSequentialScanHandleOnHashing =
                new List <PathAtom>(template.OutputFileExtensionsForSequentialScanHandleOnHashing.Select(pathRemapper.Remap));

            TelemetryTagPrefix = template.TelemetryTagPrefix;

            MasterCpuMultiplier         = template.MasterCpuMultiplier;
            MasterCacheLookupMultiplier = template.MasterCacheLookupMultiplier;
            SkipHashSourceFile          = template.SkipHashSourceFile;
        }
Exemplo n.º 16
0
        /// <nodoc />
        public ExportConfiguration(IExportConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            SnapshotFile = pathRemapper.Remap(template.SnapshotFile);
            SnapshotMode = template.SnapshotMode;
        }
Exemplo n.º 17
0
        /// <nodoc />
        public TrackedValue(ITrackedValue template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            Location = template.Location.IsValid ?
                       new LocationData(pathRemapper.Remap(template.Location.Path), template.Location.Line, template.Location.Position) :
                       LocationData.Invalid;
        }
Exemplo n.º 18
0
 /// <nodoc />
 public CMakeResolverSettings(ICMakeResolverSettings template, PathRemapper pathRemapper) : base(template, pathRemapper)
 {
     ProjectRoot          = pathRemapper.Remap(template.ProjectRoot);
     BuildDirectory       = template.BuildDirectory;
     ModuleName           = template.ModuleName;
     CacheEntries         = template.CacheEntries;
     CMakeSearchLocations = template.CMakeSearchLocations;
     RemoveAllDebugFlags  = template.RemoveAllDebugFlags;
     UntrackingSettings   = template.UntrackingSettings;
 }
Exemplo n.º 19
0
        /// <nodoc />
        public DScriptResolverSettings(IDScriptResolverSettings template, PathRemapper pathRemapper)
            : base(template, pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            Root     = pathRemapper.Remap(template.Root);
            Modules  = template.Modules?.Select(pathRemapper.Remap).ToList();
            Packages = template.Packages?.Select(pathRemapper.Remap).ToList();
        }
Exemplo n.º 20
0
        /// <nodoc />
        public ResolverSettings(IResolverSettings template, PathRemapper pathRemapper)
        {
            Contract.Requires(template != null);
            Contract.Requires(pathRemapper != null);

            Kind     = template.Kind;
            Name     = template.Name;
            File     = pathRemapper.Remap(template.File);
            Location = template.Location;
            AllowWritableSourceDirectory = template.AllowWritableSourceDirectory;
        }
Exemplo n.º 21
0
        /// <nodoc />
        public DirectoryMembershipFingerprinterRule(IDirectoryMembershipFingerprinterRule template, PathRemapper pathRemapper)
            : base(template, pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            Name = template.Name;
            Root = pathRemapper.Remap(template.Root);
            DisableFilesystemEnumeration = template.DisableFilesystemEnumeration;
            FileIgnoreWildcards          = new List <PathAtom>(template.FileIgnoreWildcards.Select(pathRemapper.Remap));
        }
Exemplo n.º 22
0
        /// <nodoc />
        public FileAccessWhitelistEntry(IFileAccessWhitelistEntry template, PathRemapper pathRemapper)
            : base(template, pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            Name         = template.Name;
            Value        = template.Value;
            ToolPath     = pathRemapper.Remap(template.ToolPath);
            PathFragment = template.PathFragment;
            PathRegex    = template.PathRegex;
        }
Exemplo n.º 23
0
        /// <nodoc />
        public CacheConfiguration(ICacheConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            CacheConfigFile            = pathRemapper.Remap(template.CacheConfigFile);
            CacheLogFilePath           = pathRemapper.Remap(template.CacheLogFilePath);
            Incremental                = template.Incremental;
            CacheGraph                 = template.CacheGraph;
            CachedGraphPathToLoad      = pathRemapper.Remap(template.CachedGraphPathToLoad);
            CachedGraphIdToLoad        = template.CachedGraphIdToLoad;
            CachedGraphLastBuildLoad   = template.CachedGraphLastBuildLoad;
            CacheSpecs                 = template.CacheSpecs;
            CacheSessionName           = template.CacheSessionName;
            ArtificialCacheMissOptions = template.ArtificialCacheMissOptions == null ? null : new ArtificialCacheMissConfig(template.ArtificialCacheMissOptions);
            CacheSalt        = template.CacheSalt;
            DeterminismProbe = template.DeterminismProbe;
            DisableDeterminismProbeLogging           = template.DisableDeterminismProbeLogging;
            HistoricMetadataCache                    = template.HistoricMetadataCache;
            AllowFetchingCachedGraphFromContentCache = template.AllowFetchingCachedGraphFromContentCache;
            MinimumReplicaCountForStrongGuarantee    = template.MinimumReplicaCountForStrongGuarantee;
            StrongContentGuaranteeRefreshProbability = template.StrongContentGuaranteeRefreshProbability;
            FileChangeTrackingExclusionRoots         = pathRemapper.Remap(template.FileChangeTrackingExclusionRoots);
            FileChangeTrackingInclusionRoots         = pathRemapper.Remap(template.FileChangeTrackingInclusionRoots);
            UseDedupStore = template.UseDedupStore;
            ReplaceExistingFileOnMaterialization = template.ReplaceExistingFileOnMaterialization;
            VfsCasRoot            = pathRemapper.Remap(template.VfsCasRoot);
            VirtualizeUnknownPips = template.VirtualizeUnknownPips;
            ElideMinimalGraphEnumerationAbsentPathProbes        = template.ElideMinimalGraphEnumerationAbsentPathProbes;
            AugmentWeakFingerprintPathSetThreshold              = template.AugmentWeakFingerprintPathSetThreshold;
            AugmentWeakFingerprintRequiredPathCommonalityFactor = template.AugmentWeakFingerprintRequiredPathCommonalityFactor;
            MonitorAugmentedPathSets = template.MonitorAugmentedPathSets;
            UseLocalOnly             = template.UseLocalOnly;
        }
Exemplo n.º 24
0
        /// <nodoc />
        public EngineConfiguration(IEngineConfiguration template, PathRemapper pathRemapper)
        {
            Contract.Assume(template != null);
            Contract.Assume(pathRemapper != null);

            DefaultFilter = template.DefaultFilter;
            RootMap       = new Dictionary <string, AbsolutePath>();
            foreach (var kv in template.RootMap)
            {
                RootMap.Add(kv.Key, pathRemapper.Remap(kv.Value));
            }

            UseHardlinks      = template.UseHardlinks;
            ScanChangeJournal = template.ScanChangeJournal;
            ScanChangeJournalTimeLimitInSec = template.ScanChangeJournalTimeLimitInSec;
            DisableConHostSharing           = template.DisableConHostSharing;
            Phase          = template.Phase;
            CleanOnly      = template.CleanOnly;
            Scrub          = template.Scrub;
            ExitOnNewGraph = template.ExitOnNewGraph;
            MaxRelativeOutputDirectoryLength = template.MaxRelativeOutputDirectoryLength;
            CleanTempDirectories             = template.CleanTempDirectories;
            ReuseEngineState            = template.ReuseEngineState;
            BuildLockPollingIntervalSec = template.BuildLockPollingIntervalSec;
            BuildLockWaitTimeoutMins    = template.BuildLockWaitTimeoutMins;
            Converge = template.Converge;
            DirectoriesToTranslate =
                template.DirectoriesToTranslate.Select(
                    d => new TranslateDirectoryData(d.RawUserOption, pathRemapper.Remap(d.FromPath), pathRemapper.Remap(d.ToPath))).ToList();
            ScrubDirectories   = pathRemapper.Remap(template.ScrubDirectories);
            CompressGraphFiles = template.CompressGraphFiles;
            FileChangeTrackerInitializationMode = template.FileChangeTrackerInitializationMode;
            LogStatistics                    = template.LogStatistics;
            TrackBuildsInUserFolder          = template.TrackBuildsInUserFolder;
            TrackGvfsProjections             = template.TrackGvfsProjections;
            UseFileContentTable              = template.UseFileContentTable;
            AllowDuplicateTemporaryDirectory = template.AllowDuplicateTemporaryDirectory;
            UnsafeAllowOutOfMountWrites      = template.UnsafeAllowOutOfMountWrites;
            VerifyFileContentOnBuildManifestHashComputation = template.VerifyFileContentOnBuildManifestHashComputation;
        }
Exemplo n.º 25
0
 /// <nodoc/>
 public JavaScriptResolverSettings(
     IJavaScriptResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, resolverSettings, pathRemapper)
 {
     Root                                 = pathRemapper.Remap(resolverSettings.Root);
     ModuleName                           = resolverSettings.ModuleName;
     Environment                          = resolverSettings.Environment;
     KeepProjectGraphFile                 = resolverSettings.KeepProjectGraphFile;
     NodeExeLocation                      = pathRemapper.Remap(resolverSettings.NodeExeLocation);
     AdditionalOutputDirectories          = resolverSettings.AdditionalOutputDirectories;
     Execute                              = resolverSettings.Execute;
     CustomCommands                       = resolverSettings.CustomCommands;
     Exports                              = resolverSettings.Exports;
     WritingToStandardErrorFailsExecution = resolverSettings.WritingToStandardErrorFailsExecution;
     DoubleWritePolicy                    = resolverSettings.DoubleWritePolicy;
     CustomScheduling                     = resolverSettings.CustomScheduling;
     CustomScripts                        = resolverSettings.CustomScripts;
     SuccessExitCodes                     = resolverSettings.SuccessExitCodes;
     RetryExitCodes                       = resolverSettings.RetryExitCodes;
     ProcessRetries                       = resolverSettings.ProcessRetries;
     AdditionalDependencies               = resolverSettings.AdditionalDependencies?.Select(additionalDependency => new JavaScriptDependency(additionalDependency, pathRemapper))?.ToList();
 }
Exemplo n.º 26
0
 /// <nodoc/>
 public RushResolverSettings(
     IRushResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, pathRemapper)
 {
     Root       = pathRemapper.Remap(resolverSettings.Root);
     ModuleName = resolverSettings.ModuleName;
     UntrackedDirectoryScopes = resolverSettings.UntrackedDirectoryScopes;
     UntrackedFiles           = resolverSettings.UntrackedFiles;
     UntrackedDirectories     = resolverSettings.UntrackedDirectories;
     Environment                 = resolverSettings.Environment;
     KeepProjectGraphFile        = resolverSettings.KeepProjectGraphFile;
     NodeExeLocation             = resolverSettings.NodeExeLocation;
     AdditionalOutputDirectories = resolverSettings.AdditionalOutputDirectories;
 }
Exemplo n.º 27
0
 /// <nodoc/>
 public MsBuildResolverSettings(
     IMsBuildResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, pathRemapper)
 {
     Root          = pathRemapper.Remap(resolverSettings.Root);
     RootTraversal = resolverSettings.RootTraversal.IsValid? pathRemapper.Remap(resolverSettings.RootTraversal) : Root;
     ModuleName    = resolverSettings.ModuleName;
     AdditionalOutputDirectories = resolverSettings.AdditionalOutputDirectories;
     UntrackedDirectoryScopes    = resolverSettings.UntrackedDirectoryScopes;
     UntrackedFiles                    = resolverSettings.UntrackedFiles;
     UntrackedDirectories              = resolverSettings.UntrackedDirectories;
     RunInContainer                    = resolverSettings.RunInContainer;
     MsBuildSearchLocations            = resolverSettings.MsBuildSearchLocations;
     FileNameEntryPoint                = resolverSettings.FileNameEntryPoint;
     InitialTargets                    = resolverSettings.InitialTargets;
     Environment                       = resolverSettings.Environment;
     GlobalProperties                  = resolverSettings.GlobalProperties;
     LogVerbosity                      = resolverSettings.LogVerbosity;
     EnableBinLogTracing               = resolverSettings.EnableBinLogTracing;
     EnableEngineTracing               = resolverSettings.EnableEngineTracing;
     KeepProjectGraphFile              = resolverSettings.KeepProjectGraphFile;
     EnableTransitiveProjectReferences = resolverSettings.EnableTransitiveProjectReferences;
 }
Exemplo n.º 28
0
        /// <summary>
        /// Create new mutable instance from template
        /// </summary>
        /// <remarks>
        /// This is the only class with CommandLineConfiguration as the configuration entrypoint where the pathRemapper is an argument with default value.
        /// If the argument was optional everywhere as well there would be no compiler helping us if someone forgot to pass it along.
        /// This is the main entrypoint so we allow a default value here for convenience
        /// </remarks>
        public CommandLineConfiguration(ICommandLineConfiguration template, PathRemapper pathRemapper = null)
            : base(template, pathRemapper)
        {
            Contract.Assume(template != null);

            pathRemapper = pathRemapper ?? new PathRemapper();

            Help                       = template.Help;
            NoLogo                     = template.NoLogo;
            LaunchDebugger             = template.LaunchDebugger;
            Startup                    = new StartupConfiguration(template.Startup, pathRemapper);
            Filter                     = template.Filter;
            Server                     = template.Server;
            ServerDeploymentDirectory  = pathRemapper.Remap(template.ServerDeploymentDirectory);
            ServerMaxIdleTimeInMinutes = template.ServerMaxIdleTimeInMinutes;
        }
Exemplo n.º 29
0
 /// <nodoc/>
 public JavaScriptResolverSettings(
     IJavaScriptResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, pathRemapper)
 {
     Root       = pathRemapper.Remap(resolverSettings.Root);
     ModuleName = resolverSettings.ModuleName;
     UntrackedDirectoryScopes = resolverSettings.UntrackedDirectoryScopes;
     UntrackedFiles           = resolverSettings.UntrackedFiles;
     UntrackedDirectories     = resolverSettings.UntrackedDirectories;
     Environment                 = resolverSettings.Environment;
     KeepProjectGraphFile        = resolverSettings.KeepProjectGraphFile;
     NodeExeLocation             = resolverSettings.NodeExeLocation;
     AdditionalOutputDirectories = resolverSettings.AdditionalOutputDirectories;
     Execute        = resolverSettings.Execute;
     CustomCommands = resolverSettings.CustomCommands;
     Exports        = resolverSettings.Exports;
 }
Exemplo n.º 30
0
 /// <nodoc/>
 public RushResolverSettings(
     IRushResolverSettings resolverSettings,
     PathRemapper pathRemapper)
     : base(resolverSettings, pathRemapper)
 {
     Root       = pathRemapper.Remap(resolverSettings.Root);
     ModuleName = resolverSettings.ModuleName;
     UntrackedDirectoryScopes = resolverSettings.UntrackedDirectoryScopes;
     UntrackedFiles           = resolverSettings.UntrackedFiles;
     UntrackedDirectories     = resolverSettings.UntrackedDirectories;
     Environment                 = resolverSettings.Environment;
     KeepProjectGraphFile        = resolverSettings.KeepProjectGraphFile;
     NodeExeLocation             = resolverSettings.NodeExeLocation;
     AdditionalOutputDirectories = resolverSettings.AdditionalOutputDirectories;
     Execute             = resolverSettings.Execute;
     CustomCommands      = resolverSettings.CustomCommands;
     RushLibBaseLocation = resolverSettings.RushLibBaseLocation;
     Exports             = resolverSettings.Exports;
     TrackDependenciesWithShrinkwrapDepsFile = resolverSettings.TrackDependenciesWithShrinkwrapDepsFile;
 }