forked from FG42/FG42
68 lines
2.2 KiB
EmacsLisp
68 lines
2.2 KiB
EmacsLisp
;;; Code:
|
|
|
|
;; Functions -------------------------------------------------
|
|
|
|
;;;###autoload
|
|
(defun create-makefile ()
|
|
"Create the arduino make file in the same directory as the ino file if doesn't exits."
|
|
(let ((makefile (concat (file-name-directory buffer-file-name) "Makefile"))
|
|
(makefile-src (concat fg42-home "/lib/extensions/arduino/Makefile")))
|
|
(if (not (file-exists-p makefile))
|
|
(progn (message "Creating arduino make file")
|
|
(copy-file makefile-src makefile)))))
|
|
|
|
;;;###autoload
|
|
(defun arduino/compilation-finished (buffer result)
|
|
(cond ((string-match "finished" result)
|
|
(bury-buffer "*compilation*")
|
|
(message "Compilation done."))
|
|
(t
|
|
(message "Compilation field."))))
|
|
|
|
;;;###autoload
|
|
(defun arduino/compilation-and-upload-finished (buffer result)
|
|
(cond ((string-match "finished" result)
|
|
(bury-buffer "*compilation*")
|
|
(message "Compilation done.")
|
|
(message "Uploading")
|
|
(arduino/upload))
|
|
(t
|
|
(message "Compilation field."))))
|
|
|
|
;;;###autoload
|
|
(defun arduino/compile ()
|
|
"Compile the current arduino project."
|
|
(interactive)
|
|
(let ((compilation-finish-functions 'arduino/compilation-finished))
|
|
(recompile)))
|
|
|
|
|
|
(defun arduino/upload ()
|
|
(interactive)
|
|
(let ((compile-command "make upload"))
|
|
(recompile)))
|
|
|
|
;;;###autoload
|
|
(defun arduino/compile-and-upload ()
|
|
"Compile and upload the current arduino project."
|
|
(interactive)
|
|
(let ((compilation-finish-functions 'arduino/compilation-and-upload-finished))
|
|
(recompile)))
|
|
|
|
;;;###autoload
|
|
(defun extensions/arduino-initialize ()
|
|
"Arduino development plugin initialization."
|
|
|
|
(ability arduino-editor ('flycheck)
|
|
"Gives FG42 the ability to edit arduino related contents."
|
|
(add-hook 'arduino-mode-hook 'create-makefile)
|
|
(setq auto-mode-alist (cons '("\\.\\(pde\\|ino\\)$" . arduino-mode) auto-mode-alist))
|
|
|
|
(global-set-key (kbd "C-c c") 'arduino/compile)
|
|
(global-set-key (kbd "C-c u") 'arduino/upload)
|
|
(autoload 'arduino-mode "arduino-mode" "Arduino editing mode." t))
|
|
(message "'arduino' extension has been initialized."))
|
|
|
|
|
|
(provide 'extensions/arduino/init)
|