8.7.2 ede-project

Inheritance Tree:
eieio-speedbar
eieio-speedbar-directory-button
ede-project-placeholder

See ede-project-placeholder.

ede-project
Children:

See ede-cpp-root-project, ede-emacs-project, ede-linux-project, ede-maven-project, See ede-simple-project, See ede-simple-base-project, See ede-proj-project, See project-am-makefile, See ede-step-project.

Slots:
:targets

Type: list

List of top level targets in this project.

:tool-cache

Type: list

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

:web-site-url

Type: string

URL to this projects web site. This is a URL to be sent to a web site for documentation.

:web-site-directory

A directory where web pages can be found by Emacs. For remote locations use a path compatible with ange-ftp. You can also use TRAMP for use with rcp & scp.

:web-site-file

A file which contains the website for this project. This file can be relative to slot web-site-directory. This can be a local file, use ange-ftp or TRAMP.

:ftp-site

Type: string

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.

:ftp-upload-site

Type: string

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.

:configurations

Type: list
Default Value: ("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.

:configuration-default

Default Value: "debug"

The default configuration.

:local-variables

Default Value: nil

Project local variables

8.7.2.1 Specialized Methods

Method: ede-preprocessor-map :AFTER this

Get the pre-processor map for project THIS.

Method: ede-subproject-relative-path :AFTER 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.

Method: eieio-speedbar-description :AFTER obj

Provide a speedbar description for OBJ.

Method: ede-map-any-target-p :AFTER 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.

Method: ede-map-subprojects :AFTER 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.

Method: ede-convert-path :AFTER 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.

Method: ede-name :AFTER this

Return a short-name for THIS project file. Do this by extracting the lowest directory name.

Method: ede-set-project-variables :AFTER project &optional buffer

Set variables local to PROJECT in BUFFER.

Method: eieio-speedbar-derive-line-path :AFTER obj &optional depth

Return the path to OBJ. Optional DEPTH is the depth we start at.

Method: ede-map-all-subprojects :AFTER 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.

Method: project-update-version :AFTER ot

The :version of the project OT has been updated. Handle saving, or other detail.

Method: ede-buffer-header-file :AFTER this buffer

Return nil, projects don’t have header files.

Method: ede-buffer-documentation-files :AFTER this buffer

Return all documentation in project THIS based on BUFFER.

Method: ede-map-targets :AFTER this proc

For object THIS, execute PROC on all targets.

Method: ede-buffer-mine :AFTER this buffer

Return non-nil if object THIS lays claim to the file in BUFFER.

Method: ede-object-keybindings :BEFORE this

Retrieves the slot keybindings from an object of class ede-project

Method: ede-description :AFTER this

Return a description suitable for the minibuffer about THIS.

Method: eieio-speedbar-object-children :AFTER this

Return the list of speedbar display children for THIS.

Method: project-make-dist :AFTER this

Build a distribution for the project based on THIS project.

Method: ede-system-include-path :AFTER this

Get the system include path used by project THIS.

Method: project-new-target-custom :AFTER proj

Create a new target. It is up to the project PROJ to get the name.

Method: ede-subproject-p :AFTER proj

Return non-nil if PROJ is a sub project.

Method: ede-expand-filename :AFTER 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.

Method: ede-menu-items-build :AFTER obj &optional current

Return a list of menu items for building project OBJ. If optional argument CURRENT is non-nil, return sub-menu code.

Method: ede-update-version-in-source :AFTER this version

Change occurrences of a version string in sources. In project THIS, cycle over all targets to give them a chance to set their sources to VERSION.

Method: project-new-target :AFTER proj &rest args

Create a new target. It is up to the project PROJ to get the name.

Method: project-compile-project :AFTER obj &optional command

Compile the entire current project OBJ. Argument COMMAND is the command to use when compiling.

Method: eieio-speedbar-object-buttonname :AFTER object

Return a string to use as a speedbar button for OBJECT.

Method: ede-map-project-buffers :AFTER this proc

For THIS, execute PROC on all buffers belonging to THIS.

Method: ede-expand-filename-impl :AFTER 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.

Method: eieio-done-customizing :AFTER proj

Call this when a user finishes customizing PROJ.

Method: ede-html-documentation :AFTER this

Return a list of HTML files provided by project THIS.

Method: ede-documentation :AFTER this

Return a list of files that provides documentation. Documentation is not for object THIS, but is provided by THIS for other files in the project.

Method: project-interactive-select-target :AFTER 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.

Method: ede-target-in-project-p :AFTER proj target

Is PROJ the parent of TARGET? If TARGET belongs to a subproject, return that project file.

Method: ede-find-target :AFTER proj buffer

Fetch the target in PROJ belonging to BUFFER or nil.

Method: ede-add-subproject :AFTER proj-a proj-b

Add into PROJ-A, the subproject PROJ-B.

Method: ede-commit-project :AFTER proj

Commit any change to PROJ to its file.

Method: project-dist-files :AFTER this

Return a list of files that constitutes a distribution of THIS project.

Method: ede-object-menu :BEFORE this

Retrieves the slot menu from an object of class ede-project

Method: ede-commit-local-variables :AFTER proj

Commit change to local variables in PROJ.