public ProjectPackage(ValaProject project) : this() { name = project.Name; ValaProjectConfiguration vpc = (ValaProjectConfiguration)(project.DefaultConfiguration); file = Path.Combine(vpc.OutputDirectory, name + ".vapi"); is_project = true; }
/// <summary> /// Deploys a makefile to build the default configuration. /// </summary> /// <remarks> /// TODO: Make configuration-based targets as advertised. /// </remarks> public Makefile Deploy(AutotoolsContext ctx, MonoDevelop.Projects.SolutionItem entry, MonoDevelop.Core.IProgressMonitor monitor) { Makefile mkfile = new Makefile(); ValaProject project = (ValaProject)entry; ValaProjectConfiguration conf = (ValaProjectConfiguration)project.DefaultConfiguration; StringBuilder files = new StringBuilder(); foreach (ProjectFile t in project.Files) { if (BuildAction.Compile == t.BuildAction) { files.Append("\\\n\t" + FileService.AbsoluteToRelativePath(project.BaseDirectory, t.FilePath)); } } string dir = ctx.DeployContext.GetResolvedPath(TargetDirectory.ProgramFiles, FileService.AbsoluteToRelativePath(conf.OutputDirectory, ctx.TargetSolution.BaseDirectory)); dir = dir.Replace("@prefix@", "$(prefix)"); dir = dir.Replace("@PACKAGE@", "$(PACKAGE)"); TemplateEngine templateEngine = new TemplateEngine(); templateEngine.Variables ["TOP_SRCDIR"] = FileService.AbsoluteToRelativePath(project.BaseDirectory, ctx.TargetSolution.BaseDirectory); templateEngine.Variables ["FILES"] = files.ToString(); templateEngine.Variables ["BUILD_DIR"] = "."; templateEngine.Variables ["INSTALL_DIR"] = "$(DESTDIR)" + dir; templateEngine.Variables ["ALL_TARGET"] = string.Format("all-{0}", conf.Name); templateEngine.Variables ["VFLAGS"] = string.Format("{0} {1}", ValaCompiler.GetCompilerFlags(conf), ValaCompiler.GeneratePkgCompilerArgs(project.Packages)); templateEngine.Variables ["VTARGET"] = conf.CompiledOutputName; StringWriter sw = new StringWriter(); string mt; if (ctx.MakefileType == MakefileType.AutotoolsMakefile) { mt = "Makefile.am.template"; } else { mt = "Makefile.template"; } using (Stream stream = GetType().Assembly.GetManifestResourceStream(mt)) { StreamReader reader = new StreamReader(stream); templateEngine.Process(reader, sw); reader.Close(); } mkfile.Append(sw.ToString()); return(mkfile); }
public Project CreateSingleFileProject (string sourceFile) { ProjectCreateInformation info = new ProjectCreateInformation (); info.ProjectName = Path.GetFileNameWithoutExtension (sourceFile); info.SolutionPath = Path.GetDirectoryName (sourceFile); info.ProjectBasePath = Path.GetDirectoryName (sourceFile); string language = "Vala"; Project project = new ValaProject (info, null, language); project.Files.Add (new ProjectFile (sourceFile)); return project; }
protected override void Clean(IProgressMonitor monitor, SolutionEntityItem entry, ConfigurationSelector configuration) { base.Clean(monitor, entry, configuration); ValaProject project = entry as ValaProject; if (project == null) { return; } project.Compiler.Clean(project.Files, (ValaProjectConfiguration)project.GetConfiguration(configuration), monitor); }
public Project CreateSingleFileProject(string sourceFile) { ProjectCreateInformation info = new ProjectCreateInformation(); info.ProjectName = Path.GetFileNameWithoutExtension(sourceFile); info.SolutionPath = Path.GetDirectoryName(sourceFile); info.ProjectBasePath = Path.GetDirectoryName(sourceFile); string language = "Vala"; Project project = new ValaProject(info, null, language); project.Files.Add(new ProjectFile(sourceFile)); return(project); }
private static void OnEntryAddedToCombine(object sender, SolutionItemEventArgs e) { ValaProject p = e.SolutionItem as ValaProject; if (p == null) { return; } foreach (ProjectPackage package in p.Packages) { if (!package.IsProject) { ProjectInformationManager.Instance.Get(p).AddPackage(package.Name); } } foreach (ProjectFile f in p.Files) { ProjectInformationManager.Instance.Get(p).AddFile(f.FilePath); } }
private List <ProjectPackage> GetPackagesOfProjects(Project project) { List <ProjectPackage> packages = new List <ProjectPackage>(); ProjectPackage package; foreach (Project c in IdeApp.Workspace.GetAllProjects()) { if (c is ValaProject) { ValaProject proj = c as ValaProject; ValaProjectConfiguration conf = proj.GetConfiguration(IdeApp.Workspace.ActiveConfiguration) as ValaProjectConfiguration; if (conf.CompileTarget != CompileTarget.Bin) { proj.WriteMDPkgPackage(conf.Selector); package = new ProjectPackage(proj); packages.Add(package); } } } return(packages); }
protected override BuildResult Build(IProgressMonitor monitor, SolutionEntityItem entry, ConfigurationSelector configuration) { ValaProject project = entry as ValaProject; if (project == null) { return(base.Build(monitor, entry, configuration)); } foreach (ValaProject p in project.DependedOnProjects()) { p.Build(monitor, configuration, true); } ValaProjectConfiguration conf = (ValaProjectConfiguration)project.GetConfiguration(configuration); if (conf.CompileTarget != CompileTarget.Bin) { project.WriteMDPkgPackage(configuration); } return(base.Build(monitor, entry, configuration)); }
public EditPackagesDialog(ValaProject project) { this.Build(); this.project = project; selectedPackages.Project = project; selectedPackages.AddRange(project.Packages); Gtk.CellRendererText textRenderer = new Gtk.CellRendererText(); Gtk.CellRendererPixbuf pixbufRenderer = new Gtk.CellRendererPixbuf(); pixbufRenderer.StockId = "md-package"; normalPackageListStore.DefaultSortFunc = NormalPackageCompareNodes; projectPackageListStore.DefaultSortFunc = ProjectPackageCompareNodes; selectedPackageListStore.DefaultSortFunc = SelectedPackageCompareNodes; normalPackageListStore.SetSortColumnId(NormalPackageNameID, Gtk.SortType.Ascending); projectPackageListStore.SetSortColumnId(ProjectPackageNameID, Gtk.SortType.Ascending); selectedPackageListStore.SetSortColumnId(SelectedPackageNameID, Gtk.SortType.Ascending); normalPackageTreeView.SearchColumn = NormalPackageNameID; projectPackageTreeView.SearchColumn = ProjectPackageNameID; selectedPackageTreeView.SearchColumn = SelectedPackageNameID; // <!-- Normal packages --> Gtk.CellRendererToggle normalPackageToggleRenderer = new Gtk.CellRendererToggle(); normalPackageToggleRenderer.Activatable = true; normalPackageToggleRenderer.Toggled += OnNormalPackageToggled; normalPackageToggleRenderer.Xalign = 0; Gtk.TreeViewColumn normalPackageColumn = new Gtk.TreeViewColumn(); normalPackageColumn.Title = "Package"; normalPackageColumn.PackStart(pixbufRenderer, false); normalPackageColumn.PackStart(textRenderer, true); normalPackageColumn.AddAttribute(textRenderer, "text", NormalPackageNameID); normalPackageTreeView.Model = normalPackageListStore; normalPackageTreeView.HeadersVisible = true; normalPackageTreeView.AppendColumn("", normalPackageToggleRenderer, "active", NormalPackageToggleID); normalPackageTreeView.AppendColumn(normalPackageColumn); normalPackageTreeView.AppendColumn("Version", textRenderer, "text", NormalPackageVersionID); // <!-- Project packages --> Gtk.CellRendererToggle projectPackageToggleRenderer = new Gtk.CellRendererToggle(); projectPackageToggleRenderer.Activatable = true; projectPackageToggleRenderer.Toggled += OnProjectPackageToggled; projectPackageToggleRenderer.Xalign = 0; Gtk.TreeViewColumn projectPackageColumn = new Gtk.TreeViewColumn(); projectPackageColumn.Title = "Package"; projectPackageColumn.PackStart(pixbufRenderer, false); projectPackageColumn.PackStart(textRenderer, true); projectPackageColumn.AddAttribute(textRenderer, "text", ProjectPackageNameID); projectPackageTreeView.Model = projectPackageListStore; projectPackageTreeView.HeadersVisible = true; projectPackageTreeView.AppendColumn("", projectPackageToggleRenderer, "active", ProjectPackageToggleID); projectPackageTreeView.AppendColumn(projectPackageColumn); projectPackageTreeView.AppendColumn("Version", textRenderer, "text", ProjectPackageVersionID); // <!-- Selected packages --> Gtk.TreeViewColumn selectedPackageColumn = new Gtk.TreeViewColumn(); selectedPackageColumn.Title = "Package"; selectedPackageColumn.PackStart(pixbufRenderer, false); selectedPackageColumn.PackStart(textRenderer, true); selectedPackageColumn.AddAttribute(textRenderer, "text", SelectedPackageNameID); selectedPackageTreeView.Model = selectedPackageListStore; selectedPackageTreeView.HeadersVisible = true; selectedPackageTreeView.AppendColumn(selectedPackageColumn); selectedPackageTreeView.AppendColumn("Version", textRenderer, "text", SelectedPackageVersionID); // Fill up the project tree view packagesOfProjects = GetPackagesOfProjects(project); foreach (ProjectPackage p in packagesOfProjects) { if (p.Name == project.Name) { continue; } packages.Add(p); string version = p.Version; bool inProject = selectedPackages.Contains(p); if (!IsPackageInStore(projectPackageListStore, p.Name, version, ProjectPackageNameID, ProjectPackageVersionID)) { projectPackageListStore.AppendValues(inProject, p.Name, version); if (inProject) { selectedPackageListStore.AppendValues(p.Name, version); } } } // Fill up the normal tree view foreach (string dir in ScanDirs()) { if (Directory.Exists(dir)) { DirectoryInfo di = new DirectoryInfo(dir); FileInfo[] availablePackages = di.GetFiles("*.vapi"); foreach (FileInfo f in availablePackages) { if (!IsValidPackage(f.FullName)) { continue; } string packagename = f.FullName; GLib.Idle.Add(delegate { ProjectPackage package = new ProjectPackage(packagename); packages.Add(package); string name = package.Name; string version = package.Version; bool inProject = selectedPackages.Contains(package); if (!IsPackageInStore(normalPackageListStore, name, version, NormalPackageNameID, NormalPackageVersionID)) { normalPackageListStore.AppendValues(inProject, name, version); if (inProject) { selectedPackageListStore.AppendValues(name, version); } } return(false); }); } } } }
public ProjectPackage (ValaProject project): this() { name = project.Name; ValaProjectConfiguration vpc = (ValaProjectConfiguration)(project.DefaultConfiguration); file = Path.Combine (vpc.OutputDirectory, name + ".vapi"); is_project = true; }
public EditPackagesDialog(ValaProject project) { this.Build(); this.project = project; selectedPackages.Project = project; selectedPackages.AddRange (project.Packages); Gtk.CellRendererText textRenderer = new Gtk.CellRendererText (); Gtk.CellRendererPixbuf pixbufRenderer = new Gtk.CellRendererPixbuf (); pixbufRenderer.StockId = "md-package"; normalPackageListStore.DefaultSortFunc = NormalPackageCompareNodes; projectPackageListStore.DefaultSortFunc = ProjectPackageCompareNodes; selectedPackageListStore.DefaultSortFunc = SelectedPackageCompareNodes; normalPackageListStore.SetSortColumnId (NormalPackageNameID, Gtk.SortType.Ascending); projectPackageListStore.SetSortColumnId (ProjectPackageNameID, Gtk.SortType.Ascending); selectedPackageListStore.SetSortColumnId (SelectedPackageNameID, Gtk.SortType.Ascending); normalPackageTreeView.SearchColumn = NormalPackageNameID; projectPackageTreeView.SearchColumn = ProjectPackageNameID; selectedPackageTreeView.SearchColumn = SelectedPackageNameID; // <!-- Normal packages --> Gtk.CellRendererToggle normalPackageToggleRenderer = new Gtk.CellRendererToggle (); normalPackageToggleRenderer.Activatable = true; normalPackageToggleRenderer.Toggled += OnNormalPackageToggled; normalPackageToggleRenderer.Xalign = 0; Gtk.TreeViewColumn normalPackageColumn = new Gtk.TreeViewColumn (); normalPackageColumn.Title = "Package"; normalPackageColumn.PackStart (pixbufRenderer, false); normalPackageColumn.PackStart (textRenderer, true); normalPackageColumn.AddAttribute (textRenderer, "text", NormalPackageNameID); normalPackageTreeView.Model = normalPackageListStore; normalPackageTreeView.HeadersVisible = true; normalPackageTreeView.AppendColumn ("", normalPackageToggleRenderer, "active", NormalPackageToggleID); normalPackageTreeView.AppendColumn (normalPackageColumn); normalPackageTreeView.AppendColumn ("Version", textRenderer, "text", NormalPackageVersionID); // <!-- Project packages --> Gtk.CellRendererToggle projectPackageToggleRenderer = new Gtk.CellRendererToggle (); projectPackageToggleRenderer.Activatable = true; projectPackageToggleRenderer.Toggled += OnProjectPackageToggled; projectPackageToggleRenderer.Xalign = 0; Gtk.TreeViewColumn projectPackageColumn = new Gtk.TreeViewColumn (); projectPackageColumn.Title = "Package"; projectPackageColumn.PackStart (pixbufRenderer, false); projectPackageColumn.PackStart (textRenderer, true); projectPackageColumn.AddAttribute (textRenderer, "text", ProjectPackageNameID); projectPackageTreeView.Model = projectPackageListStore; projectPackageTreeView.HeadersVisible = true; projectPackageTreeView.AppendColumn ("", projectPackageToggleRenderer, "active", ProjectPackageToggleID); projectPackageTreeView.AppendColumn (projectPackageColumn); projectPackageTreeView.AppendColumn ("Version", textRenderer, "text", ProjectPackageVersionID); // <!-- Selected packages --> Gtk.TreeViewColumn selectedPackageColumn = new Gtk.TreeViewColumn (); selectedPackageColumn.Title = "Package"; selectedPackageColumn.PackStart (pixbufRenderer, false); selectedPackageColumn.PackStart (textRenderer, true); selectedPackageColumn.AddAttribute (textRenderer, "text", SelectedPackageNameID); selectedPackageTreeView.Model = selectedPackageListStore; selectedPackageTreeView.HeadersVisible = true; selectedPackageTreeView.AppendColumn (selectedPackageColumn); selectedPackageTreeView.AppendColumn ("Version", textRenderer, "text", SelectedPackageVersionID); // Fill up the project tree view packagesOfProjects = GetPackagesOfProjects (project); foreach (ProjectPackage p in packagesOfProjects) { if (p.Name == project.Name) continue; packages.Add (p); string version = p.Version; bool inProject = selectedPackages.Contains (p); if (!IsPackageInStore (projectPackageListStore, p.Name, version, ProjectPackageNameID, ProjectPackageVersionID)) { projectPackageListStore.AppendValues (inProject, p.Name, version); if (inProject) selectedPackageListStore.AppendValues (p.Name, version); } } // Fill up the normal tree view foreach (string dir in ScanDirs ()) { if (Directory.Exists (dir)) { DirectoryInfo di = new DirectoryInfo (dir); FileInfo[] availablePackages = di.GetFiles ("*.vapi"); foreach (FileInfo f in availablePackages) { if (!IsValidPackage (f.FullName)) { continue; } string packagename = f.FullName; GLib.Idle.Add (delegate { ProjectPackage package = new ProjectPackage (packagename); packages.Add (package); string name = package.Name; string version = package.Version; bool inProject = selectedPackages.Contains (package); if (!IsPackageInStore (normalPackageListStore, name, version, NormalPackageNameID, NormalPackageVersionID)) { normalPackageListStore.AppendValues (inProject, name, version); if (inProject) selectedPackageListStore.AppendValues (name, version); } return false; }); } } } }
public ProjectPackageEventArgs(ValaProject project, ProjectPackage package) { this.project = project; this.package = package; }