Function: compile-multi

compile-multi is an interactive and natively compiled function defined in compile-multi.el.

Signature

(compile-multi &optional QUERY COMMAND)

Documentation

Multi-target interface to compile.

With optional argument QUERY allow user to modify compilation command before running. COMMAND when set will be used instead of prompting the user for a compile-multi command.

Key Bindings

This command is not in any keymaps.

Source Code

;; Defined in /nix/store/ax1p6npch7lvclxg5n7cjd3i0dh74vcc-emacs-packages-deps/share/emacs/site-lisp/elpa/compile-multi-20250831.1542/compile-multi.el
;;;###autoload
(defun compile-multi (&optional query command)
  "Multi-target interface to compile.
With optional argument QUERY allow user to modify compilation command before
running. COMMAND when set will be used instead of prompting the user for a
compile-multi command."
  (interactive "P")
  (let* ((default-directory (or (and compile-multi-default-directory
                                     (funcall compile-multi-default-directory))
                                default-directory))
         (compile-cmd
          (or command
              (plist-get (cdr (or (compile-multi--get-task)
                                  (user-error "compile-multi: Invalid task read from user")))
                         :command))))
    (cond
     ((stringp compile-cmd)
      (when query
        (setq compile-cmd
              (compilation-read-command compile-cmd)))
      (compile compile-cmd (consp query)))
     ((and (functionp compile-cmd)
           (commandp compile-cmd))
      (if query
          (eval-expression
           (read--expression "Eval: " (format "(%s)" `(call-interactively ,compile-cmd))))
        (call-interactively compile-cmd)))
     ((functionp compile-cmd)
      (if query
          (eval-expression
           (read--expression "Eval: " (format "(%s)" compile-cmd)))
        (funcall compile-cmd)))
     (t (error "Don't know how to run the command %s" compile-cmd)))))