anjuta r3818 - in trunk: . libanjuta plugins/project-wizard plugins/project-wizard/templates



Author: naba
Date: Sun Apr  6 12:08:33 2008
New Revision: 3818
URL: http://svn.gnome.org/viewvc/anjuta?rev=3818&view=rev

Log:
	* libanjuta/anjuta-utils.c (anjuta_util_glist_strings_join):
	* libanjuta/anjuta-utils.h:
	* plugins/project-wizard/druid.c (check_and_warn_missing),
	(on_druid_next):
	* plugins/project-wizard/header.c (npw_header_free),
	(npw_header_add_required_program),
	(npw_header_add_required_package),
	(npw_header_check_required_programs), (package_is_installed),
	(npw_header_check_required_packages):
	* plugins/project-wizard/header.h:
	* plugins/project-wizard/parser.c (parse_tag),
	(parse_header_start), (parse_header_text):
	* plugins/project-wizard/templates/anjuta-plugin.wiz:
	* plugins/project-wizard/templates/cpp.wiz:
	* plugins/project-wizard/templates/django.wiz:
	* plugins/project-wizard/templates/gcj.wiz:
	* plugins/project-wizard/templates/gnome.wiz:
	* plugins/project-wizard/templates/gtk.wiz:
	* plugins/project-wizard/templates/gtkmm.wiz:
	* plugins/project-wizard/templates/java.wiz:
	* plugins/project-wizard/templates/minimal.wiz:
	* plugins/project-wizard/templates/mkfile.wiz:
	* plugins/project-wizard/templates/python.wiz:
	* plugins/project-wizard/templates/sdl.wiz:
	* plugins/project-wizard/templates/terminal.wiz:
	* plugins/project-wizard/templates/wxwin.wiz:
	* plugins/project-wizard/templates/xlib-dock.wiz:
	* plugins/project-wizard/templates/xlib.wiz:

	Added a check for vital programs and packages needed to create a
	new project. A warning dialog is shown to user in project
	wizard when he proceeds after selecting a project type.
	Updated all project templates to cover vital programs and
	packages to generate and build correctly.


Modified:
   trunk/ChangeLog
   trunk/libanjuta/anjuta-utils.c
   trunk/libanjuta/anjuta-utils.h
   trunk/plugins/project-wizard/druid.c
   trunk/plugins/project-wizard/header.c
   trunk/plugins/project-wizard/header.h
   trunk/plugins/project-wizard/parser.c
   trunk/plugins/project-wizard/templates/anjuta-plugin.wiz
   trunk/plugins/project-wizard/templates/cpp.wiz
   trunk/plugins/project-wizard/templates/django.wiz
   trunk/plugins/project-wizard/templates/gcj.wiz
   trunk/plugins/project-wizard/templates/gnome.wiz
   trunk/plugins/project-wizard/templates/gtk.wiz
   trunk/plugins/project-wizard/templates/gtkmm.wiz
   trunk/plugins/project-wizard/templates/java.wiz
   trunk/plugins/project-wizard/templates/minimal.wiz
   trunk/plugins/project-wizard/templates/mkfile.wiz
   trunk/plugins/project-wizard/templates/python.wiz
   trunk/plugins/project-wizard/templates/sdl.wiz
   trunk/plugins/project-wizard/templates/terminal.wiz
   trunk/plugins/project-wizard/templates/wxwin.wiz
   trunk/plugins/project-wizard/templates/xlib-dock.wiz
   trunk/plugins/project-wizard/templates/xlib.wiz

Modified: trunk/libanjuta/anjuta-utils.c
==============================================================================
--- trunk/libanjuta/anjuta-utils.c	(original)
+++ trunk/libanjuta/anjuta-utils.c	Sun Apr  6 12:08:33 2008
@@ -591,6 +591,35 @@
 	return new_list;
 }
 
+/* Join list of strings using the given delimiter */
+gchar*
+anjuta_util_glist_strings_join (GList * list, gchar *delimiter)
+{
+	GString *joined;
+	gboolean first = TRUE;
+	GList *node;
+	
+	joined = g_string_new (NULL);
+	node = list;
+	while (node)
+	{
+		if (node->data)
+		{
+			if (!first)
+				g_string_append (joined, delimiter);
+			else
+				first = FALSE;
+			g_string_append (joined, node->data);
+		}
+		node = g_list_next (node);
+	}
+	if (joined->len > 0)
+		return g_string_free (joined, FALSE);
+	else
+		g_string_free (joined, TRUE);
+	return NULL;
+}
+
 gchar*
 anjuta_util_get_real_path (const gchar *path)
 {

Modified: trunk/libanjuta/anjuta-utils.h
==============================================================================
--- trunk/libanjuta/anjuta-utils.h	(original)
+++ trunk/libanjuta/anjuta-utils.h	Sun Apr  6 12:08:33 2008
@@ -84,6 +84,7 @@
 void anjuta_util_glist_strings_prefix (GList * list, const gchar *prefix);
 void anjuta_util_glist_strings_sufix (GList * list, const gchar *sufix);
 GList* anjuta_util_glist_strings_sort (GList * list);
+gchar* anjuta_util_glist_strings_join (GList * list, gchar *delimiter);
 
 /**********************************************************/
 /* Both the returned glist and the data should be g_freed */

Modified: trunk/plugins/project-wizard/druid.c
==============================================================================
--- trunk/plugins/project-wizard/druid.c	(original)
+++ trunk/plugins/project-wizard/druid.c	Sun Apr  6 12:08:33 2008
@@ -656,6 +656,82 @@
 	npw_page_parser_parse (parser, output, strlen (output), NULL);
 }
 
+static void
+check_and_warn_missing (NPWDruid *this)
+{
+	GList *missing_programs, *missing_packages;
+	GString *missing_message = NULL;
+	
+	missing_programs = npw_header_check_required_programs (this->header);
+	missing_packages = npw_header_check_required_packages (this->header);
+	
+	if (missing_programs || missing_packages)
+	{
+		missing_message = g_string_new (NULL);
+	}
+	
+	if (missing_programs)
+	{
+		gchar *missing_progs;
+		missing_progs = anjuta_util_glist_strings_join (missing_programs,
+														", ");
+		g_string_append_printf (missing_message,
+								_("\nMissing programs: %s."), missing_progs);
+		g_free (missing_progs);
+		g_list_free (missing_programs);
+	}
+	
+	if (missing_packages)
+	{
+		gchar *missing_pkgs;
+		missing_pkgs = anjuta_util_glist_strings_join (missing_packages,
+													   ", ");
+		g_string_append_printf (missing_message,
+								_("\nMissing packages: %s."), missing_pkgs);
+		g_free (missing_pkgs);
+		g_list_free (missing_packages);
+	}
+	
+	if (missing_message)
+	{
+		GtkWidget *dialog, *detail_label, *expander;
+				
+		g_string_prepend (missing_message, _(
+		 "Some important programs or development packages required to build "
+		 "this project are missing. Please make sure they are "
+		 "installed properly before generating the project.\n"));
+		dialog =
+			gtk_message_dialog_new_with_markup (GTK_WINDOW (this->dialog),
+												GTK_DIALOG_DESTROY_WITH_PARENT,
+												GTK_MESSAGE_WARNING,
+												GTK_BUTTONS_CLOSE,
+												"<b>%s</b>\n\n%s",
+												_("Missing components"),
+												missing_message->str);
+		detail_label = gtk_label_new (
+		  _("The missing programs are usually part of some distrubution "
+			"packages and can be searched in your Application Manager. "
+			"Similarly, the development packages are contained in special "
+			"packages that your distribution provide to allow development "
+			"of projects based on them. They usually end with -dev or "
+			"-devel suffix in package names and can be found by searching "
+			"in your Application Manager."));
+		gtk_label_set_line_wrap (GTK_LABEL (detail_label), TRUE);
+		gtk_widget_show (detail_label);
+		
+		expander = gtk_expander_new ("<b>Details</b>");
+		gtk_expander_set_use_markup (GTK_EXPANDER (expander), TRUE);
+		gtk_container_add (GTK_CONTAINER (expander), detail_label);
+		gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+									 expander);
+		gtk_widget_show (expander);
+		
+		gtk_dialog_run (GTK_DIALOG (dialog));
+		gtk_widget_destroy (dialog);
+		g_string_free (missing_message, TRUE);
+	}
+}
+
 static gboolean
 on_druid_next (GnomeDruidPage* page, GtkWidget* widget, NPWDruid* this)
 {
@@ -671,6 +747,10 @@
 
 		/* Current is Select project page */
 		new_project = npw_header_get_filename (this->header);
+		
+		/* Check if necessary programs for this project is installed */
+		check_and_warn_missing (this);
+		
 		if (this->project_file != new_project)
 		{
 			/* Change project */

Modified: trunk/plugins/project-wizard/header.c
==============================================================================
--- trunk/plugins/project-wizard/header.c	(original)
+++ trunk/plugins/project-wizard/header.c	Sun Apr  6 12:08:33 2008
@@ -24,10 +24,13 @@
  *---------------------------------------------------------------------------*/
 
 #include <config.h>
+#include <sys/wait.h>
+#include <unistd.h>
 
 #include "header.h"
 
 #include <glib/gdir.h>
+#include <libanjuta/anjuta-utils.h>
 
 /*---------------------------------------------------------------------------*/
 
@@ -48,6 +51,8 @@
 	gchar* iconfile;
 	gchar* category;
 	gchar* filename;
+	GList* required_programs;
+	GList* required_packages;
 	NPWHeaderList* owner;
 	GNode* node;
 };
@@ -74,12 +79,14 @@
 {
 	GNode* node;
 
+	/* Memory allocated in string pool and project pool is not free */
 	node = g_node_find (this->owner->list, G_IN_ORDER, G_TRAVERSE_ALL, this);
 	if (node != NULL)
-	{
 		g_node_destroy (node);
-		/* Memory allocated in string pool and project pool is not free */
-	}
+	if (this->required_programs)
+		g_list_free (this->required_programs);
+	if (this->required_packages)
+		g_list_free (this->required_packages);
 }
 
 void
@@ -143,6 +150,70 @@
 	return this->iconfile;
 }
 
+void
+npw_header_add_required_program (NPWHeader* this, const gchar* program)
+{
+	this->required_programs =
+		g_list_prepend (this->required_programs,
+						g_string_chunk_insert (this->owner->string_pool,
+											   program));
+	
+}
+
+void
+npw_header_add_required_package (NPWHeader* this, const gchar* package)
+{
+	this->required_packages =
+		g_list_prepend (this->required_packages,
+						g_string_chunk_insert (this->owner->string_pool,
+											   package));
+}
+
+GList*
+npw_header_check_required_programs (NPWHeader* this)
+{
+	GList *node = NULL;
+	GList *failed_programs = NULL;
+	for (node = this->required_programs; node; node = g_list_next (node))
+	{
+		if (!anjuta_util_prog_is_installed (node->data, FALSE))
+		{
+			failed_programs = g_list_prepend (failed_programs, node->data);
+		}
+	}
+	return failed_programs;
+}
+
+static gboolean
+package_is_installed (const gchar *package)
+{
+	int status;
+	int exit_status;
+	pid_t pid;
+	if ((pid = fork()) == 0)
+	{
+		execlp ("pkg-config", "pkg-config", "--exists", package, NULL);
+	}
+	waitpid (pid, &status, 0);
+	exit_status = WEXITSTATUS (status);
+	return (exit_status == 0);
+}
+
+GList*
+npw_header_check_required_packages (NPWHeader* this)
+{
+	GList *node = NULL;
+	GList *failed_packages = NULL;
+	for (node = this->required_packages; node; node = g_list_next (node))
+	{
+		if (!package_is_installed (node->data))
+		{
+			failed_packages = g_list_prepend (failed_packages, node->data);
+		}
+	}
+	return failed_packages;
+}
+
 gboolean
 npw_header_is_leaf(const NPWHeader* this)
 {

Modified: trunk/plugins/project-wizard/header.h
==============================================================================
--- trunk/plugins/project-wizard/header.h	(original)
+++ trunk/plugins/project-wizard/header.h	Sun Apr  6 12:08:33 2008
@@ -44,6 +44,20 @@
 void npw_header_set_iconfile (NPWHeader* this, const gchar* confile);
 const gchar* npw_header_get_iconfile (const NPWHeader* this);
 
+void npw_header_add_required_program (NPWHeader* this, const gchar* program);
+
+/* Returns list of missing programs, or NULL if none is missing
+ * Only the glist should be freed, not the strings within
+ */
+GList* npw_header_check_required_programs (NPWHeader* this);
+
+void npw_header_add_required_package (NPWHeader* this, const gchar* package);
+
+/* Returns list of missing packages, or NULL if none is missing
+ * Only the glist should be freed, not the strings within
+ */
+GList* npw_header_check_required_packages (NPWHeader* this);
+
 gboolean npw_header_is_leaf(const NPWHeader* this);
 
 NPWHeaderList* npw_header_list_new (void);

Modified: trunk/plugins/project-wizard/parser.c
==============================================================================
--- trunk/plugins/project-wizard/parser.c	(original)
+++ trunk/plugins/project-wizard/parser.c	Sun Apr  6 12:08:33 2008
@@ -43,6 +43,8 @@
 	NPW_NAME_TAG,
 	NPW_DESCRIPTION_TAG,
 	NPW_CATEGORY_TAG,
+	NPW_REQUIRED_PROGRAM_TAG,
+	NPW_REQUIRED_PACKAGE_TAG,
 	NPW_ICON_TAG,
 	NPW_PAGE_TAG,
 	NPW_PROPERTY_TAG,
@@ -160,6 +162,14 @@
 	{
 		return NPW_CATEGORY_TAG;
 	}
+	else if (strcmp ("required-program", name) == 0)
+	{
+		return NPW_REQUIRED_PROGRAM_TAG;
+	}
+	else if (strcmp ("required-package", name) == 0)
+	{
+		return NPW_REQUIRED_PACKAGE_TAG;
+	}
 	else if (strcmp ("page", name) == 0)
 	{
 		return NPW_PAGE_TAG;
@@ -386,6 +396,8 @@
 			case NPW_DESCRIPTION_TAG:
 			case NPW_ICON_TAG:
 			case NPW_CATEGORY_TAG:
+			case NPW_REQUIRED_PROGRAM_TAG:
+			case NPW_REQUIRED_PACKAGE_TAG:
 				known = TRUE;
 				break;
 			default:
@@ -517,6 +529,12 @@
 				parser_critical (parser->ctx, "Duplicated category tag");
 			}
 			break;
+		case NPW_REQUIRED_PROGRAM_TAG:
+			npw_header_add_required_program (parser->header, text);
+			break;
+		case NPW_REQUIRED_PACKAGE_TAG:
+			npw_header_add_required_package (parser->header, text);
+			break;
 		case NPW_PROJECT_WIZARD_TAG:
 			/* Nothing to do */
 			break;

Modified: trunk/plugins/project-wizard/templates/anjuta-plugin.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/anjuta-plugin.wiz	(original)
+++ trunk/plugins/project-wizard/templates/anjuta-plugin.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,10 @@
 	<description>Anjuta plugin project that uses libanjuta framework</description>
 	<icon>anjuta-plugin-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-package>libanjuta-1.0</required-package>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/cpp.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/cpp.wiz	(original)
+++ trunk/plugins/project-wizard/templates/cpp.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A generic C++ project</description>
 	<icon>cpp-logo.png</icon>
 	<category>C++</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/django.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/django.wiz	(original)
+++ trunk/plugins/project-wizard/templates/django.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,7 @@
 	<description>Python webproject using Django Web Framework</description>
 	<icon>django-logo.png</icon>
 	<category>Python</category>
+	<required-program>django-admin.py</required-program>
 </project-wizard>
 
 <page name="basic" _label="Django Project information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/gcj.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/gcj.wiz	(original)
+++ trunk/plugins/project-wizard/templates/gcj.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,10 @@
 	<description>A generic natively compiled java project using the GNU Java Compiler (gcj)</description>
 	<icon>gcj-logo.png</icon>
 	<category>Java</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-program>gcj</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/gnome.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/gnome.wiz	(original)
+++ trunk/plugins/project-wizard/templates/gnome.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,12 @@
 	<description>A generic GNOME project</description>
 	<icon>gnome-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-package>libgnome-2.0 >= 2.14</required-package>
+	<required-package>libgnomeui-2.0 >= 2.14</required-package>	
+	<required-package>libglade-2.0 >= 2.6.0</required-package>	
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/gtk.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/gtk.wiz	(original)
+++ trunk/plugins/project-wizard/templates/gtk.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,11 @@
 	<description>A generic GTK+ project</description>
 	<icon>gtk-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-package>gtk+-2.0 >= 2.8</required-package>
+	<required-package>libglade-2.0 >= 2.6.0</required-package>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/gtkmm.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/gtkmm.wiz	(original)
+++ trunk/plugins/project-wizard/templates/gtkmm.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,11 @@
 	<description>A generic GTKmm (C++) project</description>
 	<icon>gtkmm-logo.png</icon>
 	<category>C++</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-package>gtkmm-2.4 >= 2.8</required-package>
+	<required-package>libglademm-2.4 >= 2.6</required-package>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/java.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/java.wiz	(original)
+++ trunk/plugins/project-wizard/templates/java.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,10 @@
 	<description>A generic java project using automake project management</description>
 	<icon>java-logo.png</icon>
 	<category>Java</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-program>java</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/minimal.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/minimal.wiz	(original)
+++ trunk/plugins/project-wizard/templates/minimal.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A generic minimal and flat project </description>
 	<icon>terminal-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/mkfile.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/mkfile.wiz	(original)
+++ trunk/plugins/project-wizard/templates/mkfile.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,7 @@
 	<description>Makefile-based project</description>
 	<icon>mkfile-logo.png</icon>
 	<category>C</category>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="options" _label="Project options" _description="Project directory, output file etc.">

Modified: trunk/plugins/project-wizard/templates/python.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/python.wiz	(original)
+++ trunk/plugins/project-wizard/templates/python.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,10 @@
 	<description>A generic python project using automake project management</description>
 	<icon>python-logo.png</icon>
 	<category>Python</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
+	<required-program>python</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/sdl.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/sdl.wiz	(original)
+++ trunk/plugins/project-wizard/templates/sdl.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A sample SDL project</description>
 	<icon>appwiz_sdl.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/terminal.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/terminal.wiz	(original)
+++ trunk/plugins/project-wizard/templates/terminal.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A generic project</description>
 	<icon>terminal-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/wxwin.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/wxwin.wiz	(original)
+++ trunk/plugins/project-wizard/templates/wxwin.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A generic wx Widgets project</description>
 	<icon>wxwin-logo.png</icon>
 	<category>C++</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/xlib-dock.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/xlib-dock.wiz	(original)
+++ trunk/plugins/project-wizard/templates/xlib-dock.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A generic Xlib dock applet</description>
 	<icon>xlib-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">

Modified: trunk/plugins/project-wizard/templates/xlib.wiz
==============================================================================
--- trunk/plugins/project-wizard/templates/xlib.wiz	(original)
+++ trunk/plugins/project-wizard/templates/xlib.wiz	Sun Apr  6 12:08:33 2008
@@ -3,6 +3,9 @@
 	<description>A generic Xlib project</description>
 	<icon>xlib-logo.png</icon>
 	<category>C</category>
+	<required-program>automake</required-program>
+	<required-program>autoconf</required-program>
+	<required-program>make</required-program>
 </project-wizard>
 
 <page name="basic" _label="Basic information" _description="General Project Information">



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]