aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas de BeauchĂȘne <thomas.de.beauchene@sap.com>2018-11-18 17:28:19 +0100
committerThomas de BeauchĂȘne <thomas.de.beauchene@sap.com>2018-11-19 14:39:26 +0100
commit047c5f1f07fb076b4cd447ddb9a8ea355bf3750a (patch)
treea7c042afe7958e83c15b684d27991f2d8c73f406
parent7888489821726bafe0b9d0d4fe99d0e720aa0868 (diff)
synchronous compilation to avoid (require 'vterm-module) error
-rw-r--r--vterm.el33
1 files changed, 17 insertions, 16 deletions
diff --git a/vterm.el b/vterm.el
index be41caf..1290e6f 100644
--- a/vterm.el
+++ b/vterm.el
@@ -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))