From 44333ef5b8e14d95964e74a8f81c86c4520e9cbd Mon Sep 17 00:00:00 2001 From: Benson Chu Date: Fri, 23 Dec 2022 12:34:31 -0600 Subject: [PATCH] Now I can extract a build command! --- lisp/llvm-lib/llvm-build-command.el | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 lisp/llvm-lib/llvm-build-command.el diff --git a/lisp/llvm-lib/llvm-build-command.el b/lisp/llvm-lib/llvm-build-command.el new file mode 100644 index 0000000..e390365 --- /dev/null +++ b/lisp/llvm-lib/llvm-build-command.el @@ -0,0 +1,48 @@ +;;; llvm-build-command.el --- -*- lexical-binding: t -*- + +;; Copyright (C) 2022 Benson Chu + +;; Author: Benson Chu +;; Created: [2022-12-23 12:04] + +;; This file is not part of GNU Emacs + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;;; Code: +(require 'llvm-shared) + +(defun ll/get-llvm-source-build-command (file) + (interactive + (list + (buffer-file-name (current-buffer)))) + + (when (not (string-match-p "llvm-project" file)) + (user-error "This is not an LLVM file!")) + + (let ((build-dir (lls/get-llvm-build-dir))) + (compilation-start (--> + (list + (format "touch %s" file) + (lls/ninja-build-tools + build-dir (list (format "%s^" file)) t)) + (string-join it " && ")) + nil + `(lambda (_) + ,(format "*build-%s*" (file-name-nondirectory file)))))) + +(provide 'llvm-build-command) +;;; llvm-build-command.el ends here