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;
		}
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
            }
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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);
                        });
                    }
                }
            }
        }
Exemple #10
0
		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;
						});
					}
				}
			}
		}
Exemple #12
0
 public ProjectPackageEventArgs(ValaProject project, ProjectPackage package)
 {
     this.project = project;
     this.package = package;
 }
		public ProjectPackageEventArgs(ValaProject project, ProjectPackage package)
		{
			this.project = project;
			this.package = package;
		}