// BUG: should display list of available qualifiers // BUG: should display list of available filter tags public static void DisplayHelp(HelpLevel helpLevel) { var hw = new HelpWriter(helpLevel); hw.WriteBanner(Strings.HelpText_DisplayHelp_BuildBanner); #region Build hw.WriteOption( "/config:<file>", Strings.HelpText_DisplayHelp_ConfigFile); hw.WriteOption( "/additionalConfigFile:<file>*", Strings.HelpText_DisplayHelp_AdditionalConfigFile, HelpLevel.Verbose); hw.WriteOption( "/qualifier:<qualifier list>", Strings.HelpText_DisplayHelp_Qualifiers); hw.WriteOption( "/objectDirectory:<output directory>", Strings.HelpText_DisplayHelp_Obj); hw.WriteOption( "/tempDirectory:<temp directory>", Strings.HelpText_DisplayHelp_TempDirectory, HelpLevel.Verbose); hw.WriteOption( "/property:<key>=<value>", Strings.HelpText_DisplayHelp_Property); hw.WriteOption( "<paths>", Strings.HelpText_DisplayHelp_Paths); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_FilteringBanner); #region Filtering hw.WriteLine(Strings.HelpText_DisplayHelp_FilteringInfo); hw.WriteLine(); hw.WriteOption( "/filter:<deps><filter>", Strings.HelpText_DisplayHelp_Filter); hw.WriteOption( "<deps>", Strings.HelpText_DisplayHelp_DependencySelection, HelpLevel.Verbose); hw.WriteOption( "<filter>", Strings.HelpText_DisplayHelp_Filter_Expression, HelpLevel.Verbose); hw.WriteLine(Strings.HelpText_DisplayHelp_FilterTypeExplanation, HelpLevel.Verbose); hw.WriteLine(HelpLevel.Verbose); hw.WriteOption( "id", Strings.HelpText_DisplayHelp_Filter_Id, HelpLevel.Verbose); hw.WriteOption( "output", Strings.HelpText_DisplayHelp_Filter_Output + " " + Strings.HelpText_DisplayHelp_Filter_PathArgument, HelpLevel.Verbose); hw.WriteOption( "input", Strings.HelpText_DisplayHelp_Filter_Input + " " + Strings.HelpText_DisplayHelp_Filter_PathArgument, HelpLevel.Verbose); hw.WriteOption( "tag", Strings.HelpText_DisplayHelp_Filter_Tag, HelpLevel.Verbose); hw.WriteOption( "value", Strings.HelpText_DisplayHelp_Filter_Value, HelpLevel.Verbose); hw.WriteOption( "valuetransitive", Strings.HelpText_DisplayHelp_Filter_ValueTransitive, HelpLevel.Verbose); hw.WriteOption( "spec", Strings.HelpText_DisplayHelp_Filter_Spec + " " + Strings.HelpText_DisplayHelp_Filter_PathArgument, HelpLevel.Verbose); hw.WriteOption( "spec_valuetransitive", Strings.HelpText_DisplayHelp_Filter_Spec_ValueTransitive, HelpLevel.Verbose); hw.WriteOption( "specref", Strings.HelpText_DisplayHelp_Filter_SpecDependencies, HelpLevel.Verbose); hw.WriteLine(Strings.HelpText_DisplayHelp_FilterFunctionExplanation, HelpLevel.Verbose); hw.WriteOption("dpt", Strings.HelpText_DisplayHelp_Filter_DependentsFunction, HelpLevel.Verbose); hw.WriteOption("dpc", Strings.HelpText_DisplayHelp_Filter_DependenciesFunction, HelpLevel.Verbose); hw.WriteOption("copydpt", Strings.HelpText_DisplayHelp_Filter_CopyDependentsFunction, HelpLevel.Verbose); hw.WriteOption("requiredfor", Strings.HelpText_DisplayHelp_Filter_RequiredInputsFunction, HelpLevel.Verbose); hw.WriteLine(HelpLevel.Verbose); hw.WriteLine(Strings.HelpText_DisplayHelp_Filter_Examples, HelpLevel.Verbose); // Note to maintainer: if you're changing one of those samples, // make sure that they're valid by testing them in FilterParserTests. hw.WriteOption( " /f:~(tag='test')", Strings.HelpText_DisplayHelp_FilterExampleNoTest, HelpLevel.Verbose); hw.WriteOption( " /f:+spec='src\\utilities\\*'", Strings.HelpText_DisplayHelp_FilterExampleDirectory, HelpLevel.Verbose); hw.WriteOption( " /f:(tag='csc.exe'and~(tag='test'))", Strings.HelpText_DisplayHelp_Filter_ExamplesBinaryFilter, HelpLevel.Verbose); hw.WriteOption( "/canonicalizeFilterOutputs[+|-]", Strings.HelpText_DisplayHelp_CanonicalizeFilterOutputs); // TODO: This option is DScript only. It isn't shown in the help text because we have the goal of // removing it and unifying it with the standard filtering above. // hw.WriteOption("scriptFile" #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_LoggingBanner); #region Logging hw.WriteOption( "/maxNumPipTelemetryBatches:<int>", Strings.HelpText_DisplayHelp_MaxNumPipTelemetryBatches); hw.WriteOption( "/logsDirectory:<path>", Strings.HelpText_DisplayHelp_LogsDirectory); hw.WriteOption( "/logPrefix:<string>", Strings.HelpText_DisplayHelp_LogPrefix, HelpLevel.Verbose); hw.WriteOption( "/logsToRetain:<number>", Strings.HelpText_DisplayHelp_LogsToRetain, HelpLevel.Verbose); hw.WriteOption( "/customLog:<file>=<id list>", Strings.HelpText_DisplayHelp_CustomLog, HelpLevel.Verbose); hw.WriteOption( "/noLog:<id list>", Strings.HelpText_DisplayHelp_NoLog, HelpLevel.Verbose); hw.WriteOption( "/consoleVerbosity:<level>", Strings.HelpText_DisplayHelp_ConsoleVerbosity, HelpLevel.Verbose); hw.WriteOption( "/fileVerbosity:<level>", Strings.HelpText_DisplayHelp_FileVerbosity, HelpLevel.Verbose); hw.WriteOption( "/logExecution[+|-]", Strings.HelpText_DisplayHelp_LogExecution, HelpLevel.Verbose); hw.WriteOption( "/noLog:<id list>", Strings.HelpText_DisplayHelp_NoExecutionLog, HelpLevel.Verbose); hw.WriteOption( "/logProcesses[+|-]", Strings.HelpText_DisplayHelp_LogProcesses, HelpLevel.Verbose); hw.WriteOption( "/logProcessData[+|-]", Strings.HelpText_DisplayHelp_LogProcessData, HelpLevel.Verbose); hw.WriteOption( "/logFileAccessTables[+|-]", Strings.HelpText_DisplayHelp_LogFileEnforcementTables, HelpLevel.Verbose); hw.WriteOption( "/logObservedFileAccesses[+|-]", Strings.HelpText_DisplayHelp_LogObservedAccesses, HelpLevel.Verbose); hw.WriteOption( "/logOutput:<option>", Strings.HelpText_DisplayHelp_LogOutput, HelpLevel.Verbose); hw.WriteOption( "/environment:<environment>", string.Format( CultureInfo.InvariantCulture, Strings.HelpText_DisplayHelp_Environment, string.Join(",", Enum.GetNames(typeof(BuildXL.Utilities.Configuration.ExecutionEnvironment)))), HelpLevel.Verbose); hw.WriteOption( "/remoteTelemetry[+|-]", Strings.HelpText_DisplayHelp_RemoteTelemetry); hw.WriteOption( "/replayWarnings[+|-]", Strings.HelpText_DisplayHelp_ReplayWarnings); hw.WriteOption( "/logStats[+|-]", Strings.HelpText_DisplayHelp_LogStats, HelpLevel.Verbose); hw.WriteOption( "/logStatus[+|-]", Strings.HelpText_DisplayHelp_LogStatus, HelpLevel.Verbose); hw.WriteOption( "/traceInfo:<Key>=<Value>", Strings.HelpText_DisplayHelp_TraceInfo, HelpLevel.Verbose); hw.WriteOption( "/logCounters[+|-]", Strings.HelpText_DisplayHelp_LogCounters, HelpLevel.Verbose); hw.WriteOption( "/logMemory[+|-]", Strings.HelpText_DisplayHelp_LogMemory, HelpLevel.Verbose); hw.WriteOption( "/storeFingerprints[+|-]", Strings.HelpText_DisplayHelp_StoreFingerprints, HelpLevel.Verbose); hw.WriteOption( "/storeFingerprints:<Default|ExecutionFingerprintsOnly|IgnoreExistingEntries>", Strings.HelpText_DisplayHelp_StoreFingerprintsWithMode, HelpLevel.Verbose); hw.WriteOption( "/substSource:[path]", Strings.HelpText_DisplayHelp_SubstSource, HelpLevel.Verbose); hw.WriteOption( "/substTarget:[path]", Strings.HelpText_DisplayHelp_SubstTarget, HelpLevel.Verbose); hw.WriteOption( "/fancyConsole[+|-]", Strings.HelpText_DisplayHelp_FancyConsole, HelpLevel.Verbose); hw.WriteOption( "/fancyConsoleMaxStatusPips:<number>", Strings.HelpText_DisplayHelp_FancyConsoleMaxStatusPips, HelpLevel.Verbose); hw.WriteOption( "/profileScript[+|-]", Strings.HelpText_DisplayHelp_ProfileScript, HelpLevel.Verbose); hw.WriteOption( "/profileReportDestination:[path]", string.Format( CultureInfo.InvariantCulture, Strings.HelpText_DisplayHelp_ProfileReportDestination, FrontEndConfigurationExtensions.DefaultProfileReportFilename), HelpLevel.Verbose); hw.WriteOption( "/trackBuildsInUserFolder[+-]", Strings.HelpText_DisplayHelp_TrackBuildsInUserFolder, HelpLevel.Verbose ); hw.WriteOption( "/trackGvfsProjections[+-]", Strings.HelpText_DisplayHelp_TrackGvfsProjections, HelpLevel.Verbose ); hw.WriteOption( "/trackMethodInvocations[+|-]", string.Format( CultureInfo.InvariantCulture, Strings.HelpText_DisplayHelp_TrackMethodInvocations), HelpLevel.Verbose); hw.WriteOption( "/useCustomPipDescriptionOnConsole[+|-]", Strings.HelpText_DisplayHelp_UseCustomPipDescriptionOnConsole, HelpLevel.Verbose); hw.WriteOption( "/cacheMiss[+|-|<path>|{<changeset list}]", Strings.HelpText_DisplayHelp_CacheMiss, HelpLevel.Verbose); hw.WriteOption( "/cacheMissDiffFormat:[format]", Strings.HelpText_DisplayHelp_CacheMissDiffFormat, HelpLevel.Verbose); hw.WriteOption( "/scriptShowSlowest[+|-]", Strings.HelpText_DisplayHelp_ScriptShowSlowest, HelpLevel.Verbose); hw.WriteOption( "/scriptShowLargest[+|-]", Strings.HelpText_DisplayHelp_ScriptShowLargest, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_ErrorsAndWarningsBanner); #region ErrorsAndWarnings hw.WriteOption( "/warnAsError[+|-]", Strings.HelpText_DisplayHelp_WarnAsError, HelpLevel.Verbose); hw.WriteOption( "/warnAsError[+|-]:<warn list>", Strings.HelpText_DisplayHelp_WarnAsErrorWithList, HelpLevel.Verbose); hw.WriteOption( "/noWarn:<warn list>", Strings.HelpText_DisplayHelp_NoWarn, HelpLevel.Verbose); hw.WriteOption( "/stopOnFirstError[+|-]", Strings.HelpText_DisplayHelp_StopOnFirstError); hw.WriteOption( "/color[+|-]", Strings.HelpText_DisplayHelp_Color, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_CachingBanner); #region Caching hw.WriteOption( "/allowFetchingCachedGraphFromContentCache", Strings.HelpText_DisplayHelp_AllowFetchingCachedGraphFromContentCache, HelpLevel.Verbose); hw.WriteOption( "/cacheConfigFilePath:<file>", Strings.HelpText_DisplayHelp_CacheConfigFilePath); hw.WriteOption( "/cacheDirectory:<artifact cache directory>", Strings.HelpText_DisplayHelp_CacheDirectory); hw.WriteOption( "/cacheSessionName:<unique session name>", Strings.HelpText_DisplayHelp_CacheSessionName, HelpLevel.Verbose); hw.WriteOption( "/cacheGraph[+|-]", Strings.HelpText_DisplayHelp_CacheGraph, HelpLevel.Verbose); hw.WriteOption( "/cacheSpecs[+|-]", Strings.HelpText_DisplayHelp_CacheSpecs, HelpLevel.Verbose); hw.WriteOption( "/compressGraphFiles[+|-]", Strings.HelpText_DisplayHelp_CompressGraphFiles, HelpLevel.Verbose); hw.WriteOption( "/determinismProbe[+|-]", Strings.HelpText_DisplayHelp_DeterminismProbeUsage, HelpLevel.Verbose); hw.WriteOption( "/engineCacheDirectory:<engine cache directory>", Strings.HelpText_DisplayHelp_EngineCacheDirectory, HelpLevel.Verbose); hw.WriteOption( "/reuseEngineState[+|-]", Strings.HelpText_DisplayHelp_ReuseEngineState, HelpLevel.Verbose); hw.WriteOption( "/reuseOutputsOnDisk[+|-]", Strings.HelpText_DisplayHelp_ReuseOutputsOnDisk, HelpLevel.Verbose); hw.WriteOption( "/server[+|-]", Strings.HelpText_DisplayHelp_Server); hw.WriteOption( "/serverMaxIdleTimeInMinutes", Strings.HelpText_DisplayHelp_ServerMaxIdleTimeInMinutes); hw.WriteOption( "/serverDeploymentDir", Strings.HelpText_DisplayHelp_ServerDeploymentDir, HelpLevel.Verbose); hw.WriteOption( "/storeOutputsToCache", Strings.HelpText_DisplayHelp_StoreOutputsToCache, HelpLevel.Verbose); hw.WriteOption( "/verifyCacheLookupPin[+|-]", Strings.HelpText_DisplayHelp_VerifyCacheLookupPin, HelpLevel.Verbose); hw.WriteOption( "/pinCachedOutputs[+|-]", Strings.HelpText_DisplayHelp_PinCachedOutputs, HelpLevel.Verbose); hw.WriteOption( "/pathSetThreshold", Strings.HelpText_DisplayHelp_PathSetThreshold, HelpLevel.Verbose); hw.WriteOption( "/augmentingPathSetCommonalityFactor:(0, 1]", Strings.HelpText_DisplayHelp_AugmentingPathSetCommonalityFactor, HelpLevel.Verbose); hw.WriteOption( "/pathSetAugmentationMonitoring", Strings.HelpText_DisplayHelp_PathSetAugmentationMonitoring, HelpLevel.Verbose); hw.WriteOption( "/vfsCasRoot<vfs cas root directory>", Strings.HelpText_DisplayHelp_VfsCasRoot, HelpLevel.Verbose); hw.WriteOption( "/enableDedupChunk[+|-]", Strings.HelpText_DisplayHelp_EnableDedupChunk, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_ExecutionControlBanner); #region ExecutionControl hw.WriteOption( "/unsafe_AllowDuplicateTemporaryDirectory[+|-]", Strings.HelpText_DisplayHelp_AllowDuplicateTemporaryDirectory); hw.WriteOption( "/incremental[+|-]", Strings.HelpText_DisplayHelp_Incremental); hw.WriteOption( "/incrementalScheduling[+|-]", Strings.HelpText_DisplayHelp_IncrementalScheduling); hw.WriteOption( "/useHardlinks[+|-]", Strings.HelpText_DisplayHelp_UseHardlinks, HelpLevel.Verbose); // This feature is used to support distributed build tests internally but is not an externally supported feature. // Don't include it in help text /* * hw.WriteOption( * "/rootMap:<drive letter>=<path>", * Strings.HelpText_DisplayHelp_RootMap, * HelpLevel.Verbose);*/ hw.WriteOption( "/injectCacheMisses:<rate and options>", Strings.HelpText_DisplayHelp_InjectCacheMisses, HelpLevel.Verbose); hw.WriteOption( "/pipDefaultTimeout:<ms>", Strings.HelpText_DisplayHelp_PipTimeout); hw.WriteOption( "/pipDefaultWarningTimeout:<ms>", Strings.HelpText_DisplayHelp_PipWarningTimeout); hw.WriteOption( "/pipTimeoutMultiplier:<float>", Strings.HelpText_DisplayHelp_PipTimeoutMultiplier, HelpLevel.Verbose); hw.WriteOption( "/pipWarningTimeoutMultiplier:<float>", Strings.HelpText_DisplayHelp_PipWarningTimeoutMultiplier, HelpLevel.Verbose); hw.WriteOption( "/maxProc:<number of concurrent processes>", Strings.HelpText_DisplayHelp_MaxProc); hw.WriteOption( "/maxProcMultiplier:<double>", Strings.HelpText_DisplayHelp_MaxProcMultiplier, HelpLevel.Verbose); hw.WriteOption( "/maxLightProc:<number of concurrent light processes>", Strings.HelpText_DisplayHelp_MaxLightProc); hw.WriteOption( "/maxIO:<number of concurrent I/O operations>", Strings.HelpText_DisplayHelp_MaxIO); hw.WriteOption( "/maxIOMultiplier:<double>", Strings.HelpText_DisplayHelp_MaxIOMultiplier, HelpLevel.Verbose); hw.WriteOption( "/maxCacheLookup:<number of concurrent cache lookup operations>", Strings.HelpText_DisplayHelp_MaxCacheLookup); hw.WriteOption( "/maxChooseWorker:<number of concurrent choose worker operations>", Strings.HelpText_DisplayHelp_MaxCacheLookup); hw.WriteOption( "/maxMaterialize:<number of concurrent materialize operations>", Strings.HelpText_DisplayHelp_MaxMaterialize); hw.WriteOption( "/lowPriority[+|-]", Strings.HelpText_DisplayHelp_LowPriority); hw.WriteOption( "/enableHistoricCommitMemoryProjection[+|-]", Strings.HelpText_DisplayHelp_EnableHistoricCommitMemoryProjection, HelpLevel.Verbose); hw.WriteOption( "/maxCommitUtilizationPercentage:<number>", Strings.HelpText_DisplayHelp_MaxCommitUtilizationPercentage, HelpLevel.Verbose); hw.WriteOption( "/maxRamUtilizationPercentage:<number>", Strings.HelpText_DisplayHelp_MaxRamUtilizationPercentage, HelpLevel.Verbose); hw.WriteOption( "/minAvailableRamMb:<number>", Strings.HelpText_DisplayHelp_MinAvailableRam, HelpLevel.Verbose); hw.WriteOption( "/manageMemoryMode:<memory mode>", Strings.HelpText_DisplayHelp_ManageMemoryMode, HelpLevel.Verbose); hw.WriteOption( "/phase:<engine phase>", Strings.HelpText_DisplayHelp_Phase); hw.WriteOption( "/maxRelativeOutputDirectoryLength:<characters>", Strings.HelpText_DisplayHelp_MaxRelativeOutputDirectoryLength, HelpLevel.Verbose); hw.WriteOption( "/buildLockPolling:<seconds>", Strings.HelpText_DisplayHelp_BuildLockPolling, HelpLevel.Verbose); hw.WriteOption( "/buildWaitTimeout:<minutes>", Strings.HelpText_DisplayHelp_BuildWaitTimeout, HelpLevel.Verbose); hw.WriteOption( "/enableLazyOutputs[+|-]", Strings.HelpText_DisplayHelp_EnableLazyOutputs, HelpLevel.Verbose); hw.WriteOption( "/cleanTempDirectories[+|-]", Strings.HelpText_DisplayHelp_CleanTempDirectories, HelpLevel.Verbose); hw.WriteOption( "/cleanOnly[+|-]", Strings.HelpText_DisplayHelp_CleanOnly, HelpLevel.Verbose); hw.WriteOption( "/cacheOnly[+|-]", Strings.HelpText_DisplayHelp_CacheOnly, HelpLevel.Verbose); hw.WriteOption( "/scrub[+|-]", Strings.HelpText_DisplayHelp_Scrub, HelpLevel.Verbose); hw.WriteOption( "/scrubDirectory:<path>", Strings.HelpText_DisplayHelp_ScrubDirectory, HelpLevel.Verbose); hw.WriteOption( "/analyzeDependencyViolations[+|-]", Strings.HelpText_DisplayHelp_AnalyzeDependencyViolations, HelpLevel.Verbose); hw.WriteOption( "/emitSpotlightIndexingWarning[+|-]", Strings.HelpText_DisplayHelp_EmitSpotlightIndexingWarning, HelpLevel.Verbose); hw.WriteOption( "/disableConHostSharing[+|-]", Strings.HelpText_DisplayHelp_DisableConHostSharing, HelpLevel.Verbose); hw.WriteOption( "/scanChangeJournal[+|-]", Strings.HelpText_DisplayHelp_ScanChangeJournal, HelpLevel.Verbose); hw.WriteOption( "/scanChangeJournalTimeLimitInSec:<seconds>", Strings.HelpText_DisplayHelp_ScanChangeJournalTimeLimitInSec, HelpLevel.Verbose); hw.WriteOption( "/fileSystemMode<option>", Strings.HelpText_DisplayHelp_FileSystemMode, HelpLevel.Verbose); hw.WriteOption( "/flushPageCacheToFileSystemOnStoringOutputsToCache[+|-]", Strings.HelpText_DisplayHelp_FlushPageCacheToFileSystemOnStoringOutputsToCache, HelpLevel.Verbose); hw.WriteOption( "/unsafe_forceSkipDeps[+|-]", Strings.HelpText_DisplayHelp_ForceSkipDependencies, HelpLevel.Verbose); hw.WriteOption( "/normalizeReadTimestamps[+|-]", Strings.HelpText_DisplayHelp_NormalizeReadTimestamps, HelpLevel.Verbose); hw.WriteOption( "/useLargeNtClosePreallocatedList[+|-]", Strings.HelpText_DisplayHelp_UseLargeNtClosePreallocatedList, HelpLevel.Verbose); hw.WriteOption( "/useExtraThreadToDrainNtClose[+|-]", Strings.HelpText_DisplayHelp_UseExtraThreadToDrainNtClose, HelpLevel.Verbose); hw.WriteOption( "/maskUntrackedAccesses[+|-]", Strings.HelpText_DisplayHelp_MaskUntrackedAccesses, HelpLevel.Verbose); hw.WriteOption( "/treatDirectoryAsAbsentFileOnHashingInputContent[+|-]", Strings.HelpText_DisplayHelp_TreatDirectoryAsAbsentFileOnHashingInputContent, HelpLevel.Verbose); hw.WriteOption( "/unsafe_AllowCopySymlink[+|-]", Strings.HelpText_DisplayHelp_AllowCopySymlink, HelpLevel.Verbose); hw.WriteOption( "/server[+|-]", Strings.HelpText_DisplayHelp_Server); hw.WriteOption( "/serverDeploymentDir", Strings.HelpText_DisplayHelp_ServerDeploymentDir, HelpLevel.Verbose); hw.WriteOption( "/processRetries:<number of retries>", Strings.HelpText_DisplayHelp_ProcessRetries, HelpLevel.Verbose); hw.WriteOption( "/fileChangeTrackerInitializationMode:<mode>", Strings.HelpText_DisplayHelp_FileChangeTrackerInitializationMode, HelpLevel.Verbose); hw.WriteOption( "/fileChangeTrackingExclusionRoot:<path>", Strings.HelpText_DisplayHelp_FileChangeTrackingExclusionRoot, HelpLevel.Verbose); hw.WriteOption( "/fileChangeTrackingInclusionRoot:<path>", Strings.HelpText_DisplayHelp_FileChangeTrackingInclusionRoot, HelpLevel.Verbose); hw.WriteOption( "/inferNonExistenceBasedOnParentPathInRealFileSystem[+|-]", Strings.HelpText_DisplayHelp_InferNonExistenceBasedOnParentPathInRealFileSystem, HelpLevel.Verbose); hw.WriteOption( "/outputMaterializationExclusionRoot:<path>", Strings.HelpText_DisplayHelp_OutputMaterializationExclusionRoot, HelpLevel.Verbose); hw.WriteOption( "/enforceAccessPoliciesOnDirectoryCreation[+|-]", Strings.HelpText_DisplayHelp_EnforceAccessPoliciesOnDirectoryCreation, HelpLevel.Verbose); hw.WriteOption( "/useFileContentTable[+|-]", Strings.HelpText_DisplayHelp_UseFileContentTable, HelpLevel.Verbose); hw.WriteOption( "/fileContentTableFile:<path>", Strings.HelpText_DisplayHelp_FileContentTableFile, HelpLevel.Verbose); hw.WriteOption( "/fileContentTableEntryTimeToLive:<number>", Strings.HelpText_DisplayHelp_FileContentTableEntryTimeToLive, HelpLevel.Verbose); hw.WriteOption( "/updateFileContentTableByScanningChangeJournal[+|-]", Strings.HelpText_DisplayHelp_UpdateFileContentTableByScanningChangeJournal, HelpLevel.Verbose); hw.WriteOption( "/adminRequiredProcessExecutionMode:<mode>", Strings.HelpText_DisplayHelp_AdminRequiredProcessExecutionMode, HelpLevel.Verbose); hw.WriteOption( "/vmConcurrencyLimit:<max number of processes executed in VM>", Strings.HelpText_DisplayHelp_VmConcurrencyLimit, HelpLevel.Verbose); hw.WriteOption( "/treatAbsentDirectoryAsExistentUnderOpaque[+|-]", Strings.HelpText_DisplayHelp_TreatAbsentDirectoryAsExistentUnderOpaque, HelpLevel.Verbose); #endregion hw.WriteBanner( Strings.HelpText_DisplayHelp_DistributedBuildBanner, HelpLevel.Verbose); #region DistributedBuild hw.WriteOption( "/distributeCacheLookups[+|-]", Strings.HelpText_DisplayHelp_DistributeCacheLookups, HelpLevel.Verbose); hw.WriteOption( "/distributedBuildRole:<distributed build role>", Strings.HelpText_DisplayHelp_DistributedBuildRole, HelpLevel.Verbose); hw.WriteOption( "/distributedBuildServicePort:<local TCP port>", Strings.HelpText_DisplayHelp_DistributedBuildServicePort, HelpLevel.Verbose); hw.WriteOption( "/distributedBuildWorker:<IP address or host name>:<local TCP port>", Strings.HelpText_DisplayHelp_DistributedBuildWorker, HelpLevel.Verbose); hw.WriteOption( "/enableWorkerSourceFileMaterialization[+|-]", Strings.HelpText_DisplayHelp_DistributedBuildWorkerSourceMaterialization, HelpLevel.Verbose); hw.WriteOption( "/masterCpuMultiplier:<double>", Strings.HelpText_DisplayHelp_MasterCpuMultiplier, HelpLevel.Verbose); hw.WriteOption( "/masterCacheLookupMultiplier:<double>", Strings.HelpText_DisplayHelp_MasterCacheLookupMultiplier, HelpLevel.Verbose); hw.WriteOption( "/validateDistribution:[+|-]", Strings.HelpText_DisplayHelp_ValidateDistribution, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_DiagBanner); #region Diagnostics hw.WriteOption( "/diagnostic:<area>", Strings.HelpText_DisplayHelp_Diagnostic); hw.WriteOption( "/experiment.<flag>[+|-]", GetExperimentalFlagHelp()); hw.WriteOption( "/breakOnUnexpectedFileAccess[+|-]", Strings.HelpText_DisplayHelp_BreakOnUnexpectedFileAccess, HelpLevel.Verbose); hw.WriteOption( "/unsafe_AllowMissingOutput:<filename>", Strings.HelpText_DisplayHelp_AllowMissingOutputs, HelpLevel.Verbose); hw.WriteOption( "/TranslateDirectory:<fromPath>::<toPath>", Strings.HelpText_DisplayHelp_TranslateDirectory, HelpLevel.Verbose); hw.WriteOption( "/unsafe_MonitorFileAccesses[+|-]", Strings.HelpText_DisplayHelp_EnforceFileAccesses); hw.WriteOption( "/unsafe_IgnoreZwRenameFileInformation[+|-]", Strings.HelpText_DisplayHelp_IgnoreZwRenameFileInformation, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreZwOtherFileInformation[+|-]", Strings.HelpText_DisplayHelp_IgnoreZwOtherFileInformation, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreNonCreateFileReparsePoints[+|-]", Strings.HelpText_DisplayHelp_IgnoreNonCreateFileReparsePoints, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreSetFileInformationByHandle[+|-]", Strings.HelpText_DisplayHelp_IgnoreSetFileInformationByHandle, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreReparsePoints[+|-]", Strings.HelpText_DisplayHelp_IgnoreReparsePoints, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreFullReparsePointResolving[+|-]", Strings.HelpText_DisplayHelp_IgnoreFullReparsePointResolving, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnorePreloadedDlls[+|-]", Strings.HelpText_DisplayHelp_IgnorePreloadedDlls, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreDynamicWritesOnAbsentProbes[+|-|:IgnoreNothing|:IgnoreDirectoryProbes|:IgnoreFileProbes|:IgnoreAll]", Strings.HelpText_DisplayHelp_IgnoreDynamicWritesOnAbsentProbes, HelpLevel.Verbose); hw.WriteOption( "/sandboxKind:<sandbox kind>", Strings.HelpText_DisplayHelp_SandboxKind, HelpLevel.Verbose); hw.WriteOption( "/unsafe_DisableDetours[+|-]", Strings.HelpText_DisplayHelp_DisableDetours, HelpLevel.Verbose); hw.WriteOption( "/logProcessDetouringStatus[+|-]", Strings.HelpText_DisplayHelp_LogProcessDetouringStatus, HelpLevel.Verbose); hw.WriteOption( "/hardExitOnErrorInDetours[+|-]", Strings.HelpText_DisplayHelp_HardExitOnErrorInDetours, HelpLevel.Verbose); hw.WriteOption( "/checkDetoursMessageCount[+|-]", Strings.HelpText_DisplayHelp_CheckDetoursMessageCount, HelpLevel.Verbose); hw.WriteOption( "/allowInternalDetoursErrorNotificationFile[+|-]", Strings.HelpText_DisplayHelp_AllowInternalDetoursErrorNotificationFile, HelpLevel.Verbose); #if PLATFORM_OSX hw.WriteOption( "/kextNumberOfKextConnections:<number>", Strings.HelpText_DisplayHelp_KextNumberOfKextConnections, HelpLevel.Verbose); hw.WriteOption( "/kextReportQueueSizeMb:<number>", Strings.HelpText_DisplayHelp_KextReportQueueSizeMb, HelpLevel.Verbose); hw.WriteOption( "/kextThrottleCpuUsageBlockThresholdPercent:<number>", Strings.HelpText_DisplayHelp_KextThrottleCpuUsageBlockThresholdPercent, HelpLevel.Verbose); hw.WriteOption( "/kextThrottleCpuUsageWakeupThresholdPercent:<number>", Strings.HelpText_DisplayHelp_KextThrottleCpuUsageWakeupThresholdPercent, HelpLevel.Verbose); hw.WriteOption( "/KextThrottleMinAvailableRamMB:<number>", Strings.HelpText_DisplayHelp_KextThrottleMinAvailableRamMB, HelpLevel.Verbose); hw.WriteOption( "/maxMemoryPressureLevel:<option>", Strings.HelpText_DisplayHelp_MaxMemoryPressureLevel, HelpLevel.Verbose); #endif hw.WriteOption( "/unsafe_ExistingDirectoryProbesAsEnumerations[+|-]", Strings.HelpText_DisplayHelp_ExistingDirectoryProbesAsEnumerations, HelpLevel.Verbose); hw.WriteOption( "/unsafe_ignoreGetFinalPathNameByHandle[+|-]", Strings.HelpText_DisplayHelp_IgnoreGetFinalPathNameByHandle, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreNtCreateFile[+|-]", Strings.HelpText_DisplayHelp_IgnoreNtCreateFile, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreZwCreateOpenQueryFamily[+|-]", Strings.HelpText_DisplayHelp_IgnoreZwCreateOpenQueryFamily, HelpLevel.Verbose); hw.WriteOption( "/unsafe_OptimizedAstConversion[+|-]", Strings.HelpText_DisplayHelp_OptimizedAstConversion, HelpLevel.Verbose); hw.WriteOption( "/unsafe_PreserveOutputs[+|-|:Reset]", Strings.HelpText_DisplayHelp_PreserveOutputs, HelpLevel.Verbose); hw.WriteOption( "/unsafe_UnexpectedFileAccessesAreErrors[+|-]", Strings.HelpText_DisplayHelp_UnexpectedFileAccessesAreErrors, HelpLevel.Verbose); hw.WriteOption( "/debug_LoadGraph:<fingerprint | path | name>", Strings.HelpText_DisplayHelp_LoadGraph, HelpLevel.Verbose); hw.WriteOption( "/launchDebugger", Strings.HelpText_DisplayHelp_LaunchDebugger, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_ScriptBanner); #region DScript hw.WriteOption( "/debugScript[+|-]", Strings.HelpText_DisplayHelp_ScriptDebugScript); hw.WriteOption( "/debuggerBreakOnExit[+|-]", Strings.HelpText_DisplayHelp_ScriptDebugScriptBreakOnExit); hw.WriteOption( "/debuggerPort", Strings.HelpText_DisplayHelp_ScriptDebugScriptPort); hw.WriteOption( "/unsafe_disableCycleDetection[+|-]", Strings.HelpText_DisplayHelp_DisableCycleDetection); hw.WriteOption( "/maxFrontEndConcurrency:<number of processes>", Strings.HelpText_DisplayHelp_MaxFrontEndConcurrency); hw.WriteOption( "/enableIncrementalFrontEnd:[+|-]", Strings.HelpText_DisplayHelp_EnableIncrementalFrontEnd); hw.WriteOption( "/maxTypeCheckingConcurrency[+|-]", Strings.HelpText_DisplayHelp_MaxTypeCheckingConcurrency); #endregion #region Component Governance Manifest hw.WriteBanner(Strings.HelpText_DisplayHelp_CgManifestBanner); hw.WriteOption("/generateCgManifestForNugets:<file>", Strings.HelpText_DisplayHelp_GenerateCgManifest); hw.WriteOption("/validateCgManifestForNugets:<file>", Strings.HelpText_DisplayHelp_ValidateCgManifest); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_MsBuildBanner); #region MSBuild hw.WriteOption( "/msbuild.logVerbosity:<q[uiet] | m[inimal] | n[ormal] | d[etailed] | diag[nostic]>", Strings.HelpText_DisplayHelp_MsBuild_LogVerbosity); hw.WriteOption( "/msbuild.enableBinLogTracing[+|-]", Strings.HelpText_DisplayHelp_MsBuild_EnableBinLogTracing); hw.WriteOption( "/msbuild.enableEngineTracing[+|-]", Strings.HelpText_DisplayHelp_MsBuild_EnableEngineTracing); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_MiscBanner); #region Misc hw.WriteOption( "/usePartialEvaluation[+|-]", Strings.HelpText_DisplayHelp_UsePartialEvaluation, HelpLevel.Verbose); hw.WriteOption( "@<file>", Strings.HelpText_DisplayHelp_ResponseFile); hw.WriteOption( "/help:[standard|verbose]", Strings.HelpText_DisplayHelp_Help); hw.WriteOption( "/interactive[+|-]", Strings.HelpText_DisplayHelp_Interactive, HelpLevel.Verbose); hw.WriteOption( "/noLogo", Strings.HelpText_DisplayHelp_NoLogo); hw.WriteOption( "/snap:<file>", Strings.HelpText_DisplayHelp_Snapshot, HelpLevel.Verbose); hw.WriteOption( "/snapshotMode:<snapshot mode>", Strings.HelpText_DisplayHelp_SnapshotMode, HelpLevel.Verbose); /* The viewer is currently broken. Leaving the code around so we can dust it off at some point. AB#1609082 * hw.WriteOption( * "/viewer:<mode>", * Strings.HelpText_DisplayHelp_ViewerOptions);*/ hw.WriteOption( "/relatedActivityId:<guid>", Strings.HelpText_DiplayHelp_RelatedActivityId, HelpLevel.Verbose); hw.WriteOption( "/vs[+|-]", Strings.HelpText_DiplayHelp_VS); hw.WriteOption( "/solutionName:<string>", Strings.HelpText_DisplayHelp_SolutionName, HelpLevel.Verbose); hw.WriteOption( "/vsOutputSrc[+|-]", Strings.HelpText_DisplayHelp_VsOutputSrc, HelpLevel.Verbose); hw.WriteOption( "/inputChanges:<file>", Strings.HelpText_DisplayHelp_InputChanges); hw.WriteOption( "/telemetryTagPrefix:<string>", Strings.HelpText_DisplayHelp_TelemetryTagPrefix); hw.WriteOption( "/unsafe_DisableGraphPostValidation[+|-]", Strings.HelpText_DisplayHelp_DisableGraphPostValidation); hw.WriteOption( "/logPipStaticFingerprintTexts[+|-]", Strings.HelpText_DisplayHelp_LogPipStaticFingerprintTexts); hw.WriteOption( "/posixDeleteMode:[NoRun|RunFirst|RunLast]", Strings.HelpText_DisplayHelp_PosixDeleteMode); hw.WriteOption("/minimumDiskSpaceForPipsGb:<int representing disk space in Gigabyte>", Strings.HelpText_DisplayHelp_DiskSpaceForPip); hw.WriteOption("/numRetryFailedPipsOnAnotherWorker:<int>", Strings.HelpText_DisplayHelp_NumberofFailedPipRetry); hw.WriteOption("/enablePlugins[+|-]", Strings.HelpText_DisplayHelp_EnablePlugins, HelpLevel.Verbose); hw.WriteOption("/pluginPaths:<path>", Strings.HelpText_DisplayHelp_PluginPaths, HelpLevel.Verbose); hw.WriteOption("/exitOnNewGraph", Strings.HelpText_DisplayHelp_ExitOnNewGraph, HelpLevel.Verbose); #endregion if (helpLevel < HelpLevel.Verbose) { hw.WriteLine(); hw.WriteLine(Strings.HelpText_DisplayHelp_ShowingStandardHelp); } }
/// <summary> /// Writes the mode flag help for each analyzer. /// </summary> public static void WriteModeOption(this HelpWriter writer, string modeName, string description, HelpLevel level = HelpLevel.Standard) { writer.WriteOption("mode", string.Format("\"{0}\". {1}", modeName, description), level: level, shortName: "m"); }