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.