aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc
diff options
context:
space:
mode:
authorEric M. Ludlam2013-02-03 21:04:46 +0100
committerDavid Engster2013-02-03 21:04:46 +0100
commitcf4dd9111067527de50051a303472d31cadee36e (patch)
tree4b47d52e2a8dc5cae940110ee24d3c0eed66d6db /doc/misc
parent72ff76bbc2adc17dbe364dee150dfca9f627e467 (diff)
downloademacs-cf4dd9111067527de50051a303472d31cadee36e.tar.gz
emacs-cf4dd9111067527de50051a303472d31cadee36e.zip
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).
Diffstat (limited to 'doc/misc')
-rw-r--r--doc/misc/ChangeLog12
-rw-r--r--doc/misc/ede.texi104
2 files changed, 83 insertions, 33 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 1fc58f9fa4c..5baf24069da 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,15 @@
12013-02-03 Eric Ludlam <zappo@gnu.org>
2
3 * doc/misc/ede.texi (Creating a project): Make ede-new doc less
4 specific, and only about items it supports, indicating that there
5 might be more. Remove refs to simple project and direct automake
6 from ede new.
7 (Simple projects): Re-write to not talk about ede-simple-project
8 which is deprecated, and instead use the term to mean projects
9 that don't do much management, just project wrapping. Add
10 ede-generic-project link.
11 (ede-generic-project): New node (bug#11441).
12
12013-02-03 Glenn Morris <rgm@gnu.org> 132013-02-03 Glenn Morris <rgm@gnu.org>
2 14
3 * cl.texi (Equality Predicates): Fix eq/eql pedantry. 15 * cl.texi (Equality Predicates): Fix eq/eql pedantry.
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index cadd815025c..44a0d666e79 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -450,9 +450,11 @@ ede-new}, or click on the @samp{Create Project} item in the
450 450
451The @command{ede-new} command prompts for the type of project you 451The @command{ede-new} command prompts for the type of project you
452would like to create. Each project type has its own benefits or 452would like to create. Each project type has its own benefits or
453language specific enhancements. @ede{} supports four different 453language specific enhancements. Not all projects that @ede{} supports
454project types: @samp{Make}, @samp{Automake}, @samp{direct Automake}, 454also supports creating a new project. Projects such as @code{emacs}
455and @samp{Simple}. 455or @code{linux} are design to recognize existing projects only.
456Project types such as @samp{Make} and @samp{Automake} do support
457creating new project types with @command{ede-new}.
456 458
457@itemize 459@itemize
458@item 460@item
@@ -468,21 +470,6 @@ Unlike a @samp{Make} project, this project autogenerates a
468@file{Makefile.am} file. @ede{} handles the Automake bootstrapping 470@file{Makefile.am} file. @ede{} handles the Automake bootstrapping
469routines, which import and maintain a @file{configure.am} script and 471routines, which import and maintain a @file{configure.am} script and
470other required files. 472other required files.
471
472@item
473For the @samp{direct Automake} project type, @ede{} reads directly
474from the Automake files.
475
476You cannot create direct Automake projects with the @command{ede-new}
477command. Instead, when you visit a project with existing Automake
478files, @ede{} automatically detects them.
479
480@item
481The @samp{Simple} project type provides light-weight constructs for
482identifying a project root and looking up files. If you already have
483a non-@ede{} project infrastructure, you can use a @samp{Simple}
484project to provide other Emacs packages, such as Semantic, with some
485information about the project. @xref{Simple projects}.
486@end itemize 473@end itemize
487 474
488A subproject is merely a project in a subdirectory of another project. 475A subproject is merely a project in a subdirectory of another project.
@@ -795,24 +782,19 @@ able to find your SDK and compile your programs.
795@node Simple projects 782@node Simple projects
796@section Simple Projects 783@section Simple Projects
797 784
798There is a wide array of Simple projects. The root for simple 785There is a wide array of simple projects. In this case a simple
799projects is the class @code{ede-simple-project}. This handles the 786project is one that detects, or is directed to identify a directory as
800infrastructure of storing a .ede file if needed. 787belonging to a project, but doesn't provide many features of a typical
801 788@ede{} project. Having the project however allows tools such as
802The class @code{ede-simple-project} is designed to be subclassed. 789@semantic{} to find sources and perform project level completions.
803Then key @ede{} methods can be overridden to provide a quick wrapper
804over any project.
805 790
806A second project type is @code{ede-cpp-root}. This project type is
807designed to be created for a directory hierarchy full of C/C++ code.
808It can be configured with minimal lisp knowledge to do header file
809lookup for @semantic{}, improving code completion performance.
810 791
811@menu 792@menu
812* ede-cpp-root:: This project marks the root of a C/C++ code project. 793* ede-cpp-root:: This project marks the root of a C/C++ code project.
813* ede-java-root:: This project marks the root of a Java project. 794* ede-java-root:: This project marks the root of a Java project.
814* ede-emacs:: A project for working with Emacs. 795* ede-emacs:: A project for working with Emacs.
815* ede-linux:: A project for working with Linux kernels. 796* ede-linux:: A project for working with Linux kernels.
797* ede-generic-project:: A project type for wrapping build systems with EDE.
816* Custom Locate:: Customizing how to locate files in a simple project 798* Custom Locate:: Customizing how to locate files in a simple project
817@end menu 799@end menu
818 800
@@ -1045,7 +1027,7 @@ tree, and enables EDE project mode for it.
1045It pre-populates the C Preprocessor symbol map for correct parsing, 1027It pre-populates the C Preprocessor symbol map for correct parsing,
1046and has an optimized include file identification function. 1028and has an optimized include file identification function.
1047 1029
1048@node ede-linux, Custom Locate, ede-emacs, Simple projects 1030@node ede-linux, ede-generic-project, ede-emacs, Simple projects
1049@subsection ede-linux 1031@subsection ede-linux
1050 1032
1051The @code{ede-linux} project will automatically identify a Linux 1033The @code{ede-linux} project will automatically identify a Linux
@@ -1054,7 +1036,60 @@ Kernel source tree, and enable EDE project mode for it.
1054It pre-populates the C Preprocessor symbol map for reasonable parsing, 1036It pre-populates the C Preprocessor symbol map for reasonable parsing,
1055and has an optimized include file identification function. 1037and has an optimized include file identification function.
1056 1038
1057@node Custom Locate, , ede-linux, Simple projects 1039@node ede-generic-project, Custom Locate, ede-linux, Simple projects
1040@subsection ede-generic-project
1041
1042The @code{ede-generic-project} is a project system that makes it easy
1043to wrap up different kinds of build systems as an EDE project.
1044Projects such as @ref{ede-emacs} requires coding skills to create.
1045Generic projects also require writing Emacs Lisp code, but the
1046requirements are minimal. You can then use
1047@command{customize-project} to configure build commands, includes, and
1048other options for that project. The configuration is saved in
1049@file{EDEConfig.el}.
1050
1051Generic projects are disabled by default because they have the
1052potential to interfere with other projects. To enable the generic
1053project sytem to start detecting projects, you need to enable it.
1054
1055@deffn Command ede-enable-generic-projects
1056Enable generic project loaders.
1057
1058This enables generic loaders for projects that are detected using
1059either a @file{Makefile}, @file{SConstruct}, or @file{CMakeLists}.
1060
1061You do not need to use this command if you create your own generic
1062project type.
1063@end deffn
1064
1065If you want to create your own generic project loader, you need to
1066define your own project and target classes, and create an autoloader.
1067The example for Makefiles looks like this:
1068
1069@example
1070;;; MAKEFILE
1071
1072(defclass ede-generic-makefile-project (ede-generic-project)
1073 ((buildfile :initform "Makefile")
1074 )
1075 "Generic Project for makefiles.")
1076
1077(defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config)
1078 "Setup a configuration for Make."
1079 (oset config build-command "make -k")
1080 (oset config debug-command "gdb ")
1081 )
1082
1083(ede-generic-new-autoloader "generic-makefile" "Make"
1084 "Makefile" 'ede-generic-makefile-project)
1085@end example
1086
1087This example project will detect any directory with the file
1088@file{Makefile} in it as belonging to this project type.
1089Customization of the project will allow you to make build and debug
1090commands more precise.
1091
1092@node Custom Locate, , ede-generic-project, Simple projects
1058@subsection Custom Locate 1093@subsection Custom Locate
1059 1094
1060The various simple project styles all have one major drawback, which 1095The various simple project styles all have one major drawback, which
@@ -1062,8 +1097,6 @@ is that the files in the project are not completely known to EDE@.
1062When the EDE API is used to try and file files by some reference name 1097When the EDE API is used to try and file files by some reference name
1063in the project, then that could fail. 1098in the project, then that could fail.
1064 1099
1065@@TODO - Add ID Utils and CScope examples
1066
1067@ede{} can therefore use some external locate commands, such as the unix 1100@ede{} can therefore use some external locate commands, such as the unix
1068``locate'' command, or ``GNU Global''. 1101``locate'' command, or ``GNU Global''.
1069 1102
@@ -1093,6 +1126,11 @@ You can add your own locate tool but subclassing from
1093methods. See the code in @file{ede-locate.el} for GNU Global as a 1126methods. See the code in @file{ede-locate.el} for GNU Global as a
1094simple example. 1127simple example.
1095 1128
1129@@TODO - Add ID Utils and CScope examples
1130
1131More on idutils and cscope is in the CEDET manual, and they each have
1132their own section.
1133
1096@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top 1134@node Extending EDE, GNU Free Documentation License, Miscellaneous commands, Top
1097@chapter Extending @ede{} 1135@chapter Extending @ede{}
1098 1136