Next: ede-cpp-root-project, Previous: ede-project-placeholder, Up: Project

#### 7.5.2 ede-project

Inheritance Tree:
  `eieio-speedbar`
    `eieio-speedbar-directory-button`
      `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 or EFS. You can also use TRAMP for use with rcp & scp.
  `:web-site-file
  `
    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.
  `: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

##### 7.5.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.