ede-project

ede-project is an object constructor function in `base.el'.
Creates an object of class ede-project.
Create a new object with name NAME of class type ede-project

Class description:
ede-project is a class in `base.el'.
Inherits from `ede-project-placeholder'.
Children `ede-cpp-root-project'.

Top level EDE project specification.
All specific project types must derive from this project.

Instance Allocated Slots:

Slot: expanded type = boolean default = nil
State of an object being expanded in speedbar.

Slot: name type = string default = "Untitled"
The name used when generating distribution files.

Slot: version type = string default = "1.0"
The version number used when distributing files.

Slot: directory type = string
Directory this project is associated with.

Slot: dirinode
The inode id for :directory.

Slot: file type = string
The File uniquely tagging this project instance.
For some project types, this will be the file that stores the project configuration.
In other projects types, this file is merely a unique identifier to this type of project.

Slot: rootproject type = (or null ede-project-placeholder-child) default = nil
Pointer to our root project.

Slot: subproj type = list default = nil
Sub projects controlled by this project.
For Automake based projects, each directory is treated as a project.

Slot: targets type = ede-target-list
List of top level targets in this project.

Slot: locate-obj type = (or null ede-locate-base-child)
A locate object to use as a backup to `ede-expand-filename'.

Slot: tool-cache type = list
List of tool cache configurations in this project.
This allows any tool to create, manage, and persist project-specific settings.

Slot: mailinglist type = string default = ""
An email address where users might send email for help.

Slot: web-site-url type = string default = ""
URL to this projects web site.
This is a URL to be sent to a web site for documentation.

Slot: web-site-directory default = ""
A directory where web pages can be found by Emacs.
For remote locations use a path compatible with ange-ftp or EFS.
You can also use TRAMP for use with rcp & scp.

Slot: web-site-file default = ""
A file which contains the home page for this project.
This file can be relative to slot `web-site-directory'.
This can be a local file, use ange-ftp, EFS, or TRAMP.

Slot: ftp-site type = string default = ""
FTP site where this project's distribution can be found.
This FTP site should be in Emacs form, as needed by `ange-ftp', but can
also be of a form used by TRAMP for use with scp, or rcp.

Slot: ftp-upload-site type = string default = ""
FTP Site to upload new distributions to.
This FTP site should be in Emacs form as needed by `ange-ftp'.
If this slot is nil, then use `ftp-site' instead.

Slot: configurations type = list default = ("debug" "release")
List of available configuration types.
Individual target/project types can form associations between a configuration,
and target specific elements such as build variables.

Slot: configuration-default default = "debug"
The default configuration.

Slot: local-variables default = nil
Project local variables


Class Allocated Slots:

Slot: menu value = (["Update Version" ede-update-version ede-object] ["Version Control Status" ede-vc-project-directory ede-object] ["Edit Project Homepage" ede-edit-web-page (and ede-object (oref (ede-toplevel) web-site-file))] ["Browse Project URL" ede-web-browse-home (and ede-object (not (string= "" (oref (ede-toplevel) web-site-url))))] "--" ["Rescan Project Files" ede-rescan-toplevel t] ["Edit Projectfile" ede-edit-file-target (ede-buffer-belongs-to-project-p)])

Menu specialized to this type of target.

Slot: keybindings value = (("D" . ede-debug-target) ("R" . ede-run-target))

Keybindings specialized to this type of target.

Slot: buttontype type = symbol value = angle

The type of expansion button used for objects of this class.
Possible values are those symbols supported by the `exp-button-type' argument
to `speedbar-make-tag-line'.

Slot: buttonface type = (or symbol face) value = speedbar-directory-face

The face used on the textual part of the button for this class.
See `speedbar-make-tag-line' for details.

Specialized Methods:

`ede-system-include-path' :PRIMARY (this)
Get the system include path used by project THIS.

`eieio-speedbar-description' :PRIMARY (obj)
Provide a speedbar description for OBJ.

`ede-menu-items-build' :PRIMARY (obj &optional current)
Return a list of menu items for building project OBJ.
If optional argument CURRENT is non-nil, return sub-menu code.

`project-make-dist' :PRIMARY (this)
Build a distribution for the project based on THIS project.

`ede-expand-filename-impl' :PRIMARY (this filename &optional force)
Return a fully qualified file name based on project THIS.
FILENAME should be just a filename which occurs in a directory controlled
by this project.
Optional argument FORCE forces the default filename to be provided even if it
doesn't exist.

`ede-source-paths' :PRIMARY (this mode)
Get the base to all source trees in the current project for MODE.
For example, <root>/src for sources of c/c++, Java, etc,
and <root>/doc for doc sources.

`ede-java-classpath' :PRIMARY (this)
Return the classpath for this project.

`ede-preprocessor-map' :PRIMARY (this)
Get the pre-processor map for project THIS.

`ede-add-subproject' :PRIMARY (proj-a proj-b)
Add into PROJ-A, the subproject PROJ-B.

`eieio-speedbar-object-buttonname' :PRIMARY (object)
Return a string to use as a speedbar button for OBJECT.

`eieio-speedbar-object-children' :PRIMARY (this)
Return the list of speedbar display children for THIS.

`ede-buffer-documentation-files' :PRIMARY (this buffer)
Return all documentation in project THIS based on BUFFER.

`ede-subproject-p' :PRIMARY (proj)
Return non-nil if PROJ is a sub project.

`ede-subproject-relative-path' :PRIMARY (proj &optional parent-in)
Get a path name for PROJ which is relative to the parent project.
If PARENT is specified, then be relative to the PARENT project.
Specifying PARENT is useful for sub-sub projects relative to the root project.

`project-interactive-select-target' :PRIMARY (this prompt)
Interactively query for a target that exists in project THIS.
Argument PROMPT is the prompt to use when querying the user for a target.

`eieio-speedbar-derive-line-path' :PRIMARY (obj &optional depth)
Return the path to OBJ.
Optional DEPTH is the depth we start at.

`ede-set-project-variables' :PRIMARY (project &optional buffer)
Set variables local to PROJECT in BUFFER.

`ede-html-documentation' :PRIMARY (this)
Return a list of HTML files provided by project THIS.

`project-compile-project' :PRIMARY (obj &optional command)
Compile the entire current project OBJ.
Argument COMMAND is the command to use when compiling.

`ede-object-keybindings' :STATIC (this)
Retrieves the slot `keybindings' from an object of class `ede-project'

`ede-buffer-header-file' :PRIMARY (this buffer)
Return nil, projects don't have header files.

`ede-map-targets' :PRIMARY (this proc)
For object THIS, execute PROC on all targets.

`project-new-target-custom' :PRIMARY (proj)
Create a new target. It is up to the project PROJ to get the name.

`ede-map-subprojects' :PRIMARY (this proc)
For object THIS, execute PROC on all direct subprojects.
This function does not apply PROC to sub-sub projects.
See also `ede-map-all-subprojects'.

`ede-find-target' :PRIMARY (proj buffer)
Fetch the target in PROJ belonging to BUFFER or nil.

`ede-documentation' :PRIMARY (this)
Return a list of files that provide documentation.
Documentation is not for object THIS, but is provided by THIS for other
files in the project.

`ede-object-menu' :STATIC (this)
Retrieves the slot `menu' from an object of class `ede-project'

`ede-convert-path' :PRIMARY (this path)
Convert path in a standard way for a given project.
Default to making it project relative.
Argument THIS is the project to convert PATH to.

`ede-buffer-mine' :PRIMARY (this buffer)
Return non-nil if object THIS lays claim to the file in BUFFER.

`ede-map-project-buffers' :PRIMARY (this proc)
For THIS, execute PROC on all buffers belonging to THIS.

`ede-map-all-subprojects' :PRIMARY (this allproc)
For object THIS, execute PROC on THIS and all subprojects.
This function also applies PROC to sub-sub projects.
See also `ede-map-subprojects'.

`ede-expand-filename-local' :PRIMARY (this filename)
Expand filename locally to project THIS with filesystem tests.

`ede-expand-filename-impl-via-subproj' :PRIMARY (this filename)
Return a fully qualified file name based on project THIS.
FILENAME should be just a filename which occurs in a directory controlled
by this project.

`project-rescan' :PRIMARY (this)
Rescan the EDE project THIS.

`ede-expand-filename' :PRIMARY (this filename &optional force)
Return a fully qualified file name based on project THIS.
FILENAME should be just a filename which occurs in a directory controlled
by this project.
Optional argument FORCE forces the default filename to be provided even if it
doesn't exist.
If FORCE equals 'newfile, then the cache is ignored and a new file in THIS
is returned.

`ede-name' :PRIMARY (this)
Return a short-name for THIS project file.
Do this by extracting the lowest directory name.

`project-dist-files' :PRIMARY (this)
Return a list of files that constitute a distribution of THIS project.

`ede-description' :PRIMARY (this)
Return a description suitable for the minibuffer about THIS.

`project-new-target' :PRIMARY (proj &rest args)
Create a new target. It is up to the project PROJ to get the name.

`ede-target-in-project-p' :PRIMARY (proj target)
Is PROJ the parent of TARGET?
If TARGET belongs to a subproject, return that project file.

`ede-map-any-target-p' :PRIMARY (this proc)
For project THIS, map PROC to all targets and return if any non-nil.
Return the first non-nil value returned by PROC.

`ede-commit-local-variables' :PRIMARY (proj)
Commit change to local variables in PROJ.