public override void GetVersionInfo(List <string> Lines) { base.GetVersionInfo(Lines); ReadOnlyPVSTargetSettings Settings = Target.WindowsPlatform.PVS; Lines.Add(String.Format("Using PVS-Studio installation at {0} with analysis mode {1} ({2})", AnalyzerFile, (uint)Settings.ModeFlags, Settings.ModeFlags.ToString())); }
public PVSToolChain(ReadOnlyTargetRules Target) { this.Target = Target; Platform = Target.Platform; InnerToolChain = new VCToolChain(Target); AnalyzerFile = FileReference.Combine(new DirectoryReference(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)), "PVS-Studio", "x64", "PVS-Studio.exe"); if (!FileReference.Exists(AnalyzerFile)) { FileReference EngineAnalyzerFile = FileReference.Combine(UnrealBuildTool.RootDirectory, "Engine", "Extras", "ThirdPartyNotUE", "NoRedist", "PVS-Studio", "PVS-Studio.exe"); if (FileReference.Exists(EngineAnalyzerFile)) { AnalyzerFile = EngineAnalyzerFile; } else { throw new BuildException("Unable to find PVS-Studio at {0} or {1}", AnalyzerFile, EngineAnalyzerFile); } } Settings = Target.WindowsPlatform.PVS; ApplicationSettings = Settings.ApplicationSettings; if (ApplicationSettings != null) { if (Settings.ModeFlags == 0) { throw new BuildException("All PVS-Studio analysis modes are disabled."); } if (!String.IsNullOrEmpty(ApplicationSettings.UserName) && !String.IsNullOrEmpty(ApplicationSettings.SerialNumber)) { LicenseFile = FileReference.Combine(UnrealBuildTool.EngineDirectory, "Intermediate", "PVS", "PVS-Studio.lic"); Utils.WriteFileIfChanged(LicenseFile, String.Format("{0}\n{1}\n", ApplicationSettings.UserName, ApplicationSettings.SerialNumber), StringComparison.Ordinal); } } else { FileReference DefaultLicenseFile = AnalyzerFile.ChangeExtension(".lic"); if (FileReference.Exists(DefaultLicenseFile)) { LicenseFile = DefaultLicenseFile; } } }