emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r111221: Update EDE documentation


From: David Engster
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r111221: Update EDE documentation (bug #11441).
Date: Sun, 03 Feb 2013 21:04:46 +0100
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111221
author: Eric Ludlam <address@hidden>
committer: David Engster <address@hidden>
branch nick: emacs-24
timestamp: Sun 2013-02-03 21:04:46 +0100
message:
  Update EDE documentation (bug #11441).
  
  * doc/misc/ede.texi (Creating a project): Make ede-new doc less
  specific, and only about items it supports, indicating that there
  might be more.  Remove refs to simple project and direct automake
  from ede new.
  (Simple projects): Re-write to not talk about ede-simple-project
  which is deprecated, and instead use the term to mean projects
  that don't do much management, just project wrapping.  Add
  ede-generic-project link.
  (ede-generic-project): New node (bug#11441).
modified:
  doc/misc/ChangeLog
  doc/misc/ede.texi
=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog        2013-02-03 19:40:00 +0000
+++ b/doc/misc/ChangeLog        2013-02-03 20:04:46 +0000
@@ -1,3 +1,15 @@
+2013-02-03  Eric Ludlam  <address@hidden>
+
+       * doc/misc/ede.texi (Creating a project): Make ede-new doc less
+       specific, and only about items it supports, indicating that there
+       might be more.  Remove refs to simple project and direct automake
+       from ede new.
+       (Simple projects): Re-write to not talk about ede-simple-project
+       which is deprecated, and instead use the term to mean projects
+       that don't do much management, just project wrapping.  Add
+       ede-generic-project link.
+       (ede-generic-project): New node (bug#11441).
+
 2013-02-03  Glenn Morris  <address@hidden>
 
        * cl.texi (Equality Predicates): Fix eq/eql pedantry.

=== modified file 'doc/misc/ede.texi'
--- a/doc/misc/ede.texi 2013-01-05 16:19:53 +0000
+++ b/doc/misc/ede.texi 2013-02-03 20:04:46 +0000
@@ -450,9 +450,11 @@
 
 The @command{ede-new} command prompts for the type of project you
 would like to create.  Each project type has its own benefits or
-language specific enhancements.  @ede{} supports four different
-project types: @samp{Make}, @samp{Automake}, @samp{direct Automake},
-and @samp{Simple}.
+language specific enhancements.  Not all projects that @ede{} supports
+also supports creating a new project.  Projects such as @code{emacs}
+or @code{linux} are design to recognize existing projects only.
+Project types such as @samp{Make} and @samp{Automake} do support
+creating new project types with @command{ede-new}.
 
 @itemize
 @item
@@ -468,21 +470,6 @@
 @file{Makefile.am} file.  @ede{} handles the Automake bootstrapping
 routines, which import and maintain a @file{configure.am} script and
 other required files.
-
address@hidden
-For the @samp{direct Automake} project type, @ede{} reads directly
-from the Automake files.
-
-You cannot create direct Automake projects with the @command{ede-new}
-command.  Instead, when you visit a project with existing Automake
-files, @ede{} automatically detects them.
-
address@hidden
-The @samp{Simple} project type provides light-weight constructs for
-identifying a project root and looking up files.  If you already have
-a address@hidden project infrastructure, you can use a @samp{Simple}
-project to provide other Emacs packages, such as Semantic, with some
-information about the project.  @xref{Simple projects}.
 @end itemize
 
 A subproject is merely a project in a subdirectory of another project.
@@ -795,24 +782,19 @@
 @node Simple projects
 @section Simple Projects
 
-There is a wide array of Simple projects.  The root for simple
-projects is the class @code{ede-simple-project}.  This handles the
-infrastructure of storing a .ede file if needed.
-
-The class @code{ede-simple-project} is designed to be subclassed.
-Then key @ede{} methods can be overridden to provide a quick wrapper
-over any project.
-
-A second project type is @code{ede-cpp-root}.  This project type is
-designed to be created for a directory hierarchy full of C/C++ code.
-It can be configured with minimal lisp knowledge to do header file
-lookup for @semantic{}, improving code completion performance.
+There is a wide array of simple projects.  In this case a simple
+project is one that detects, or is directed to identify a directory as
+belonging to a project, but doesn't provide many features of a typical
address@hidden project.  Having the project however allows tools such as
address@hidden to find sources and perform project level completions.
+
 
 @menu
 * ede-cpp-root::                This project marks the root of a C/C++ code 
project.
 * ede-java-root::               This project marks the root of a Java project.
 * ede-emacs::                   A project for working with Emacs.
 * ede-linux::                   A project for working with Linux kernels.
+* ede-generic-project::         A project type for wrapping build systems with 
EDE.
 * Custom Locate::               Customizing how to locate files in a simple 
project
 @end menu
 
@@ -1045,7 +1027,7 @@
 It pre-populates the C Preprocessor symbol map for correct parsing,
 and has an optimized include file identification function.
 
address@hidden ede-linux, Custom Locate, ede-emacs, Simple projects
address@hidden ede-linux, ede-generic-project, ede-emacs, Simple projects
 @subsection ede-linux
 
 The @code{ede-linux} project will automatically identify a Linux
@@ -1054,7 +1036,60 @@
 It pre-populates the C Preprocessor symbol map for reasonable parsing,
 and has an optimized include file identification function.
 
address@hidden Custom Locate,  , ede-linux, Simple projects
address@hidden ede-generic-project, Custom Locate, ede-linux, Simple projects
address@hidden ede-generic-project
+
+The @code{ede-generic-project} is a project system that makes it easy
+to wrap up different kinds of build systems as an EDE project.
+Projects such as @ref{ede-emacs} requires coding skills to create.
+Generic projects also require writing Emacs Lisp code, but the
+requirements are minimal.  You can then use
address@hidden to configure build commands, includes, and
+other options for that project.  The configuration is saved in
address@hidden
+
+Generic projects are disabled by default because they have the
+potential to interfere with other projects.  To enable the generic
+project sytem to start detecting projects, you need to enable it.
+
address@hidden Command ede-enable-generic-projects
+Enable generic project loaders.
+
+This enables generic loaders for projects that are detected using
+either a @file{Makefile}, @file{SConstruct}, or @file{CMakeLists}.
+
+You do not need to use this command if you create your own generic
+project type.
address@hidden deffn
+
+If you want to create your own generic project loader, you need to
+define your own project and target classes, and create an autoloader.
+The example for Makefiles looks like this:
+
address@hidden
+;;; MAKEFILE
+
+(defclass ede-generic-makefile-project (ede-generic-project)
+  ((buildfile :initform "Makefile")
+   )
+  "Generic Project for makefiles.")
+
+(defmethod ede-generic-setup-configuration ((proj 
ede-generic-makefile-project) config)
+  "Setup a configuration for Make."
+  (oset config build-command "make -k")
+  (oset config debug-command "gdb ")
+  )
+
+(ede-generic-new-autoloader "generic-makefile" "Make"
+                           "Makefile" 'ede-generic-makefile-project)
address@hidden example
+
+This example project will detect any directory with the file
address@hidden in it as belonging to this project type.
+Customization of the project will allow you to make build and debug
+commands more precise.
+
address@hidden Custom Locate,  , ede-generic-project, Simple projects
 @subsection Custom Locate
 
 The various simple project styles all have one major drawback, which
@@ -1062,8 +1097,6 @@
 When the EDE API is used to try and file files by some reference name
 in the project, then that could fail.
 
-@@TODO - Add ID Utils and CScope examples
-
 @ede{} can therefore use some external locate commands, such as the unix
 ``locate'' command, or ``GNU Global''.
 
@@ -1093,6 +1126,11 @@
 methods.  See the code in @file{ede-locate.el} for GNU Global as a
 simple example.
 
+@@TODO - Add ID Utils and CScope examples
+
+More on idutils and cscope is in the CEDET manual, and they each have
+their own section.
+
 @node Extending EDE, GNU Free Documentation License, Miscellaneous commands, 
Top
 @chapter Extending @ede{}
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]