ビルド ディレクトリをソース ディレクトリとは別にしたい場合があります (たとえば、複数の異なるビルド環境にマウントされた同じソース NFS を使用しています)。この構成では、Makefile が見つからないため、flymake を使用できません。flymake に正しいビルド ディレクトリを見つけて make -C check-syntax を実行させる良い方法を誰かが推奨できますか? これはよくある問題だと思いますが、Googleはここで失敗しました。
質問する
108 次
1 に答える
0
記録のために、私はこれを行うことになりました(改善を歓迎します):
(defadvice flymake-find-buildfile
(around advice-find-makefile-separate-obj-dir
activate compile)
"Look for buildfile in a separate build directory"
(let* ((source-dir (ad-get-arg 1))
(bld-dir (ac-build-dir source-dir)))
(ad-set-arg 1 bld-dir)
ad-do-it))
(defun ac-find-configure (source-dir)
(locate-dominating-file source-dir "configure"))
(defvar project-build-root nil
"top build directory of the project")
(defun ac-build-dir (source-dir)
"find the build directory for the given source directory"
(condition-case nil
(let* ((topdir (ac-find-configure source-dir))
(subdir (file-relative-name (file-name-directory source-dir) topdir))
(blddir (concat (file-name-as-directory project-build-root) subdir)))
blddir)
(error source-dir)))
project-build-root
そして、トップソースディレクトリのビルドディレクトリに設定します.dir-locals.el
于 2013-06-12T19:41:36.520 に答える