diff options
| author | Thomas de BeauchĂȘne <thomas.de.beauchene@sap.com> | 2018-11-18 17:28:19 +0100 |
|---|---|---|
| committer | Thomas de BeauchĂȘne <thomas.de.beauchene@sap.com> | 2018-11-19 14:39:26 +0100 |
| commit | 047c5f1f07fb076b4cd447ddb9a8ea355bf3750a (patch) | |
| tree | a7c042afe7958e83c15b684d27991f2d8c73f406 | |
| parent | 7888489821726bafe0b9d0d4fe99d0e720aa0868 (diff) | |
synchronous compilation to avoid (require 'vterm-module) error
| -rw-r--r-- | vterm.el | 33 |
1 files changed, 17 insertions, 16 deletions
@@ -7,25 +7,26 @@ ;;; Code: +;;;###autoload (defun vterm-module-compile () "This function compiles the vterm-module." (interactive) - (let ((buffer (get-buffer-create " *Install vterm")) - (default-directory (file-name-directory (locate-library "vterm")))) - (make-process - :name "build-vterm-module" - :buffer buffer - :command '("sh" "-c" "mkdir -p build; cd build; cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..; make") - :stderr buffer - :sentinel (lambda (process status) - (if (equal status "finished\n") - (progn (let ((buffer (process-buffer process))) - (bury-buffer buffer) - (when-let ((window (get-buffer-window buffer))) - (delete-window window))) - (message "Sucessfully compiled the emacs-libvterm module.")) - (message "Compilation of libvterm has failed.")))) - (pop-to-buffer buffer))) + (let ((default-directory (file-name-directory (locate-library "vterm")))) + (unless (file-executable-p (concat default-directory "vterm-module.so" )) + (let ((buffer (get-buffer-create " *Install vterm"))) + (pop-to-buffer buffer) + (let ((status (call-process "sh" nil buffer t "-c" + "mkdir -p build; \ + cd build; \ + cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..; \ + make"))) + (if (eq status 0) + (progn + (bury-buffer buffer) + (when-let ((window (get-buffer-window buffer))) + (delete-window window)) + (message "Compilation of emacs-libvterm module succeeded")) + (message "Compilation of emacs-libvterm module failed"))))))) (when (boundp 'vterm-install) (vterm-module-compile)) |
