private bool TrySetBuildToolExecutor( PipConstructionHelper pipConstructionHelper, ProcessBuilder processBuilder, ProjectWithPredictions project) { // If we should use the dotnet core version of msbuild, the executable for the pip is dotnet.exe instead of msbuild.exe, and // the first argument is msbuild.dll FileArtifact cmdExeArtifact; if (m_resolverSettings.ShouldRunDotNetCoreMSBuild()) { cmdExeArtifact = FileArtifact.CreateSourceFile(m_dotnetExePath); processBuilder.ArgumentsBuilder.Add(PipDataAtom.FromAbsolutePath(m_msBuildPath)); } else { cmdExeArtifact = FileArtifact.CreateSourceFile(m_msBuildPath); } processBuilder.Executable = cmdExeArtifact; processBuilder.AddInputFile(cmdExeArtifact); processBuilder.AddCurrentHostOSDirectories(); processBuilder.AddUntrackedAppDataDirectories(); processBuilder.AddUntrackedProgramDataDirectories(); // Temp directory setup including setting TMP and TEMP env vars. The path to // the temp dir is generated in a consistent fashion between BuildXL runs to // ensure environment value (and hence pip hash) consistency. processBuilder.EnableTempDirectory(); processBuilder.ToolDescription = StringId.Create(m_context.StringTable, I($"{m_moduleDefinition.Descriptor.Name} - {project.FullPath.ToString(PathTable)}")); return(true); }
private void SetCmdTool( ProcessBuilder processBuilder, RushProject project) { var cmdExeArtifact = FileArtifact.CreateSourceFile(AbsolutePath.Create(PathTable, Environment.GetEnvironmentVariable("COMSPEC"))); processBuilder.Executable = cmdExeArtifact; processBuilder.AddInputFile(cmdExeArtifact); processBuilder.AddCurrentHostOSDirectories(); processBuilder.AddUntrackedAppDataDirectories(); processBuilder.AddUntrackedProgramDataDirectories(); // Temp directory setup including setting TMP and TEMP env vars. The path to // the temp dir is generated in a consistent fashion between BuildXL runs to // ensure environment value (and hence pip hash) consistency. processBuilder.EnableTempDirectory(); processBuilder.ToolDescription = StringId.Create(m_context.StringTable, I($"{m_moduleDefinition.Descriptor.Name} - {project.Name}")); }
private bool TrySetBuildToolExecutor( PipConstructionHelper pipConstructionHelper, ProcessBuilder processBuilder, ProjectWithPredictions project) { FileArtifact cmdExeArtifact = FileArtifact.CreateSourceFile(m_msBuildExePath); processBuilder.Executable = cmdExeArtifact; processBuilder.AddInputFile(cmdExeArtifact); processBuilder.AddCurrentHostOSDirectories(); processBuilder.AddUntrackedAppDataDirectories(); processBuilder.AddUntrackedProgramDataDirectories(); // Temp directory setup including setting TMP and TEMP env vars. The path to // the temp dir is generated in a consistent fashion between BuildXL runs to // ensure environment value (and hence pip hash) consistency. processBuilder.EnableTempDirectory(); AbsolutePath toolDir = m_msBuildExePath.GetParent(PathTable); processBuilder.ToolDescription = StringId.Create(m_context.StringTable, I($"{m_moduleDefinition.Descriptor.Name} - {project.FullPath.ToString(PathTable)}")); return(true); }
private void UntrackFilesAndDirectories(ProcessBuilder processBuilder) { processBuilder.AddUntrackedWindowsDirectories(); processBuilder.AddUntrackedProgramDataDirectories(); processBuilder.AddUntrackedAppDataDirectories(); if (m_untrackingSettings != null) { PipConstructionUtilities.UntrackUserConfigurableArtifacts(processBuilder, m_untrackingSettings); } var programFilesDirectoryArtifact = DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles))); var programFilesX86DirectoryArtifact = DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86))); processBuilder.AddUntrackedDirectoryScope(programFilesDirectoryArtifact); processBuilder.AddUntrackedDirectoryScope(programFilesX86DirectoryArtifact); processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, @"C:\PROGRA~1\"))); // TODO: This but better processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, @"C:\PROGRA~2\"))); // TODO: This but better // TODO: This is just here because the cloud build requires manually dropping the necessary executables and libraries, and should be removed // when that issue is resolved. string toolsDir = m_manuallyDroppedDependenciesPath.Value.ToString(m_context.PathTable); processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, toolsDir))); // Git accesses should be ignored if .git directory is there var gitDirectory = m_projectRoot.Combine(m_context.PathTable, ".git"); if (m_frontEndHost.Engine.DirectoryExists(gitDirectory)) { processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(gitDirectory)); processBuilder.AddUntrackedFile(FileArtifact.CreateSourceFile(m_projectRoot.Combine(m_context.PathTable, ".gitattributes"))); processBuilder.AddUntrackedFile(FileArtifact.CreateSourceFile(m_projectRoot.Combine(m_context.PathTable, ".gitignore"))); } }