diff options
| author | Eric M. Ludlam | 2013-02-03 21:04:46 +0100 |
|---|---|---|
| committer | David Engster | 2013-02-03 21:04:46 +0100 |
| commit | cf4dd9111067527de50051a303472d31cadee36e (patch) | |
| tree | 4b47d52e2a8dc5cae940110ee24d3c0eed66d6db /doc/misc | |
| parent | 72ff76bbc2adc17dbe364dee150dfca9f627e467 (diff) | |
| download | emacs-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/ChangeLog | 12 | ||||
| -rw-r--r-- | doc/misc/ede.texi | 104 |
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 @@ | |||
| 1 | 2013-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 | |||
| 1 | 2013-02-03 Glenn Morris <rgm@gnu.org> | 13 | 2013-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 | ||
| 451 | The @command{ede-new} command prompts for the type of project you | 451 | The @command{ede-new} command prompts for the type of project you |
| 452 | would like to create. Each project type has its own benefits or | 452 | would like to create. Each project type has its own benefits or |
| 453 | language specific enhancements. @ede{} supports four different | 453 | language specific enhancements. Not all projects that @ede{} supports |
| 454 | project types: @samp{Make}, @samp{Automake}, @samp{direct Automake}, | 454 | also supports creating a new project. Projects such as @code{emacs} |
| 455 | and @samp{Simple}. | 455 | or @code{linux} are design to recognize existing projects only. |
| 456 | Project types such as @samp{Make} and @samp{Automake} do support | ||
| 457 | creating 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 |
| 469 | routines, which import and maintain a @file{configure.am} script and | 471 | routines, which import and maintain a @file{configure.am} script and |
| 470 | other required files. | 472 | other required files. |
| 471 | |||
| 472 | @item | ||
| 473 | For the @samp{direct Automake} project type, @ede{} reads directly | ||
| 474 | from the Automake files. | ||
| 475 | |||
| 476 | You cannot create direct Automake projects with the @command{ede-new} | ||
| 477 | command. Instead, when you visit a project with existing Automake | ||
| 478 | files, @ede{} automatically detects them. | ||
| 479 | |||
| 480 | @item | ||
| 481 | The @samp{Simple} project type provides light-weight constructs for | ||
| 482 | identifying a project root and looking up files. If you already have | ||
| 483 | a non-@ede{} project infrastructure, you can use a @samp{Simple} | ||
| 484 | project to provide other Emacs packages, such as Semantic, with some | ||
| 485 | information about the project. @xref{Simple projects}. | ||
| 486 | @end itemize | 473 | @end itemize |
| 487 | 474 | ||
| 488 | A subproject is merely a project in a subdirectory of another project. | 475 | A 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 | ||
| 798 | There is a wide array of Simple projects. The root for simple | 785 | There is a wide array of simple projects. In this case a simple |
| 799 | projects is the class @code{ede-simple-project}. This handles the | 786 | project is one that detects, or is directed to identify a directory as |
| 800 | infrastructure of storing a .ede file if needed. | 787 | belonging to a project, but doesn't provide many features of a typical |
| 801 | 788 | @ede{} project. Having the project however allows tools such as | |
| 802 | The class @code{ede-simple-project} is designed to be subclassed. | 789 | @semantic{} to find sources and perform project level completions. |
| 803 | Then key @ede{} methods can be overridden to provide a quick wrapper | ||
| 804 | over any project. | ||
| 805 | 790 | ||
| 806 | A second project type is @code{ede-cpp-root}. This project type is | ||
| 807 | designed to be created for a directory hierarchy full of C/C++ code. | ||
| 808 | It can be configured with minimal lisp knowledge to do header file | ||
| 809 | lookup 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. | |||
| 1045 | It pre-populates the C Preprocessor symbol map for correct parsing, | 1027 | It pre-populates the C Preprocessor symbol map for correct parsing, |
| 1046 | and has an optimized include file identification function. | 1028 | and 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 | ||
| 1051 | The @code{ede-linux} project will automatically identify a Linux | 1033 | The @code{ede-linux} project will automatically identify a Linux |
| @@ -1054,7 +1036,60 @@ Kernel source tree, and enable EDE project mode for it. | |||
| 1054 | It pre-populates the C Preprocessor symbol map for reasonable parsing, | 1036 | It pre-populates the C Preprocessor symbol map for reasonable parsing, |
| 1055 | and has an optimized include file identification function. | 1037 | and 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 | |||
| 1042 | The @code{ede-generic-project} is a project system that makes it easy | ||
| 1043 | to wrap up different kinds of build systems as an EDE project. | ||
| 1044 | Projects such as @ref{ede-emacs} requires coding skills to create. | ||
| 1045 | Generic projects also require writing Emacs Lisp code, but the | ||
| 1046 | requirements are minimal. You can then use | ||
| 1047 | @command{customize-project} to configure build commands, includes, and | ||
| 1048 | other options for that project. The configuration is saved in | ||
| 1049 | @file{EDEConfig.el}. | ||
| 1050 | |||
| 1051 | Generic projects are disabled by default because they have the | ||
| 1052 | potential to interfere with other projects. To enable the generic | ||
| 1053 | project sytem to start detecting projects, you need to enable it. | ||
| 1054 | |||
| 1055 | @deffn Command ede-enable-generic-projects | ||
| 1056 | Enable generic project loaders. | ||
| 1057 | |||
| 1058 | This enables generic loaders for projects that are detected using | ||
| 1059 | either a @file{Makefile}, @file{SConstruct}, or @file{CMakeLists}. | ||
| 1060 | |||
| 1061 | You do not need to use this command if you create your own generic | ||
| 1062 | project type. | ||
| 1063 | @end deffn | ||
| 1064 | |||
| 1065 | If you want to create your own generic project loader, you need to | ||
| 1066 | define your own project and target classes, and create an autoloader. | ||
| 1067 | The 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 | |||
| 1087 | This example project will detect any directory with the file | ||
| 1088 | @file{Makefile} in it as belonging to this project type. | ||
| 1089 | Customization of the project will allow you to make build and debug | ||
| 1090 | commands more precise. | ||
| 1091 | |||
| 1092 | @node Custom Locate, , ede-generic-project, Simple projects | ||
| 1058 | @subsection Custom Locate | 1093 | @subsection Custom Locate |
| 1059 | 1094 | ||
| 1060 | The various simple project styles all have one major drawback, which | 1095 | The 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@. | |||
| 1062 | When the EDE API is used to try and file files by some reference name | 1097 | When the EDE API is used to try and file files by some reference name |
| 1063 | in the project, then that could fail. | 1098 | in 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 | |||
| 1093 | methods. See the code in @file{ede-locate.el} for GNU Global as a | 1126 | methods. See the code in @file{ede-locate.el} for GNU Global as a |
| 1094 | simple example. | 1127 | simple example. |
| 1095 | 1128 | ||
| 1129 | @@TODO - Add ID Utils and CScope examples | ||
| 1130 | |||
| 1131 | More on idutils and cscope is in the CEDET manual, and they each have | ||
| 1132 | their 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 | ||