Function: ede-build-forms-menu

ede-build-forms-menu is a byte-compiled function defined in ede.el.gz.

Signature

(ede-build-forms-menu MENU-DEF)

Documentation

Create a sub menu for building different parts of an EDE system.

Argument MENU-DEF is the menu definition to use.

Source Code

;; Defined in /usr/src/emacs/lisp/cedet/ede.el.gz
(defun ede-build-forms-menu (_menu-def)
  "Create a sub menu for building different parts of an EDE system.
Argument MENU-DEF is the menu definition to use."
  (easy-menu-filter-return
   (easy-menu-create-menu
    "Build Forms"
    (let ((obj (ede-current-project))
	  (newmenu nil) ;'([ "Build Selected..." ede-compile-selected t ]))
	  targets
	  targitems
	  ede-obj
	  (tskip nil))
      (if (not obj)
	  nil
	(setq targets (when (slot-boundp obj 'targets)
			(oref obj targets))
	      ede-obj (if (listp ede-object) ede-object (list ede-object)))
	;; First, collect the build items from the project
	(setq newmenu (append newmenu (ede-menu-items-build obj t)))
	;; Second, declare the current target menu items
	(if (and ede-obj (ede-menu-obj-of-class-p 'ede-target))
	    (while ede-obj
	      (setq newmenu (append newmenu
				    (ede-menu-items-build (car ede-obj) t))
		    tskip (car ede-obj)
		    ede-obj (cdr ede-obj))))
	;; Third, by name, enable builds for other local targets
	(while targets
	  (unless (eq tskip (car targets))
	    (setq targitems (ede-menu-items-build (car targets) nil))
	    (setq newmenu
		  (append newmenu
			  (if (= 1 (length targitems))
			      targitems
			    (cons (ede-name (car targets))
				  targitems))))
	    )
	  (setq targets (cdr targets)))
	;; Fourth, build sub projects.
	;; -- nerp
	;; Fifth, add make distribution
	(append newmenu (list [ "Make distribution" ede-make-dist t ]))
	)))))