Compilation functions and VS environment stuff

This commit is contained in:
John Doty 2015-11-26 22:37:12 -08:00
parent 95e20e387c
commit 022b7e68c1

View file

@ -648,3 +648,70 @@
;; =================================================================
(add-to-list 'auto-mode-alist '("\\.appx\\'" . archive-mode))
(add-to-list 'auto-coding-alist '("\\.appx\\'" . no-conversion))
;; =================================================================
;; Some build stuff; I swiped this from handmade-hero
;; =================================================================
(when (featurep 'w32)
(setq doty-makescript "build.bat"))
(when (featurep 'aquamacs)
(setq doty-makescript "./build.macosx"))
(when (featurep 'x)
(setq doty-makescript "./build.linux"))
(setq compilation-directory-locked nil)
(setq compilation-context-lines 0)
(setq compilation-error-regexp-alist
(cons '("^\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) : \\(?:fatal error\\|warnin\\(g\\)\\) C[0-9]+:" 2 3 nil (4))
compilation-error-regexp-alist))
(defun find-project-directory-recursive ()
"Recursively search for a makefile."
(interactive)
(if (file-exists-p doty-makescript) t
(cd "../")
(find-project-directory-recursive)))
(defun lock-compilation-directory ()
"The compilation process should NOT hunt for a makefile"
(interactive)
(setq compilation-directory-locked t)
(message "Compilation directory is locked."))
(defun unlock-compilation-directory ()
"The compilation process SHOULD hunt for a makefile"
(interactive)
(setq compilation-directory-locked nil)
(message "Compilation directory is roaming."))
(defun find-project-directory ()
"Find the project directory."
(interactive)
(setq find-project-from-directory default-directory)
(switch-to-buffer-other-window "*compilation*")
(if compilation-directory-locked (cd last-compilation-directory)
(cd find-project-from-directory)
(find-project-directory-recursive)
(setq last-compilation-directory default-directory)))
(defun make-without-asking ()
"Make the current build."
(interactive)
(if (find-project-directory) (compile doty-makescript))
(other-window 1))
(define-key global-map "\C-c\C-m" 'make-without-asking)
(defun set-vs-environment ()
"Load the VS environment variables into the current emacs process."
(interactive)
(dolist
(ev (split-string
(shell-command-to-string "cmd /c \" \"%ProgramFiles(x86)%\\Microsoft Visual Studio 14.0\\Common7\\Tools\\VsDevCmd.bat\" && set \"")
"[\n]+"))
(letrec ((spev (split-string ev "="))
(vn (car spev))
(vv (cadr spev)))
(setenv vn vv))))
)