User Tools 
  Simple Setup 
  Project Management 
  Smart Completion 
  Find References 
  Code Generation 
  UML Graphs 
  Language Support 
  Project Support 
 Developer Primers 
  Add a Language 
  Add external tool 
 Parts of CEDET 
  Misc Tools 
 Source Forge 
  Mailing Lists 
  Git Repository 
 More Tools 
<< Files >>

Project Management

The CEDET Project management system provides a few simple keystrokes for organizing your files, building Makefiles or Automake files, and compiling your sources.

If you don't want CEDET to manage your Makefiles, CEDET will still be able to identify some types of projects based on pre-existing build configurations, such as the Emacs sources, the Linux kernel, or any project built using Automake.

The entire CEDET Makefile tree was built with CEDET's project management system, so when you download and build the distribution package, you will be using a CEDET project.

The image to the right shows a part of the Project management menu.

Project Basics

The project system for CEDET is implemented in a tool called EDE, or "Emacs Development Environment". The EDE tool was started in 1997 and is the backbone of many CEDET features. This section will refer to EDE.

The key reason to enable global-ede-mode with your CEDET install is to enable the other tools in the CEDET suite to identify the boundaries of your project. In particular, the smart completion system and the Symref system must be able to find all your sourcecode in order to provide the desired results.

Use EDE to create makefiles

If you would like to use EDE to do all the build management of your sourcecode, and your project is built from C/C++ code, Emacs Lisp code, and texinfo documentation, then you are in luck. Start with the command:

M-x ede-new RET

and choose either a Makefile or Automake based project. You can then use

M-x ede-new-target RET

to create makefile targets and start adding source files into your project. Use the project menu to create your makefiles, and build your sources.

Use EDE to wrap a known project type

If you are working on the code to Emacs, Linux, or have a project using hand-written Automake files, then you are in luck. All you need to do is enable EDE's global mode, and that's it.

EDE will autodetect these project types, and configure itself to help you use the other features that need the EDE structure.

Use EDE to wrap a project with a custom build script

If you are working with a custom build system, or a system not yet supported by default by EDE, then you will need to wrap your project in a simple EDE wrapper.

For C or C++ projects, there is a custom project you can use called ede-cpp-root. You can configure this project in your .emacs file.

A simple example looks like this:

 (ede-cpp-root-project "NAME" :file "FILENAME"
     :include-path '( "/include" "../include" "/c/include" )
     :system-include-path '( "/usr/include/c++/3.2.2/" )
     :spp-table '( ("MOOSE" . "")
                   ("CONST" . "const") )
     :spp-files '( "include/config.h" )

EDE likes to anchor its projects to files on the filesystem, so be sure to set FILENAME to a real file in your project, such as a Makefile. The remaining slots are optional, but allow to to specify project specific include paths, or pre-processor tables. In this case "spp" stands for the "Semantic PreProcessor", the tool used to parse C PreProcessor statements.

Downloading CEDET

All the CEDET tools are available from a single distribution file to ease installation.

Latest Stable Release: CEDET 1.1

Try out cedet-1.1.tar.gz.

CEDET 1.1 includes all the security fixes from 1.0.1, a long list of bug fixes, and additional new features to support Java, Android and Arduino programming!

Our goal for CEDET 1.1 is that this will be the LAST release using the current install and file organization schemes. This will also be the last release to support Emacs 22! Future released versions will use a new file system scheme compatible with Emacs 24.<

After building CEDET 1.1, consider joining the mailing list and help make CEDET better.

Previous Stable Release: CEDET 1.0.1

The previous stable release is cedet-1.0.1.tar.gz. You will need CEDET 1.0.1 for older versions of Emacs, such as Emacs 21 or 22.1.

About this Security Release:
CEDET 1.0 has a security issue related to loading project files with EDE. If you are using CEDET 1.0, please upgrade to CEDET 1.0.1 to recover from this issue. If you use Emacs 23.3 with built-in CEDET, please upgrade to Emacs 23.4 or later, apply the patch, or upgraded to CEDET 1.0.1.

CEDET Development

Did you find a bug?

If you encounter problems with a CEDET release, those issues may have already been fixed in Git! CEDET has an active community of users that help identify and fix these issues quickly. You can check the mailing list archives or just try the Git version directly.

When using CEDET from Git, please note that we are transitioning to a new file and install scheme to be more compatible with Emacs 24. Changes will be required in your .emacs.

Emacs Version Support:

CEDET 1.0.1, and 1.1* has TWO automated build processes, one via Make, and the other via starting Emacs, and executing a build command.

This table shows the automated testing done for the release of CEDET 1.1:

 Emacs 22Emacs 23Emacs 24
UBuntu 11.10
Debian Stable
OSX 10.6
Windows 7/cygwin

Emacs 21 CEDET's test suite will fail, but most parts still work for CEDET 1.0.1.

XEmacs Neither build process works with XEmacs 21.4. It is possible to build parts of it by hand it so it works however.

SXEmacs We have integrated patches to support SXEmacs, but we haven't tested it ourselves. Parts of CEDET have been reported to install and work.

Windows XP/7 If you do not have cygwin, you will need to use the cedet-build.el script to build CEDET.

Get CEDET at SourceForge.net.
gnu Eric's homepage
Return to CEDET.
Send mail to cedet-devel to contact the developers.
Visit Siege-engine.com to see what I do in analog land.

Copyright(C) 1997,98,99,2000,01,02,03,04,05,06,07,08,09,10,11 Eric M. Ludlam
Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.