Настройка на byte-compile-dest-file-функция

Искам да задам целевата директория за компилация на байтове на emacs lisp, използвайки относителен път като ../foo. Разбрах, че трябва да използвам byte-compile-dest-file-function, но не знам как да го настроя. Как мога да го настроя?


person sawa    schedule 19.12.2012    source източник


Отговори (2)


За да зададете променливата byte-compile-dest-function, можете да използвате или customize-variable интерактивно, или setq във вашия начален файл. Тъй като ще трябва да напишете функция, която да върши работата и в двата случая, бих препоръчал последното, така че всичко да е на едно и също място във вашия init файл.

Например:

(defun my-dest-function (filename)
  (concat (file-name-directory filename)
          "../"
          (file-name-sans-extension (file-name-nondirectory filename))
          ".elc"))
(setq byte-compile-dest-file-function 'my-dest-function)
person François Févotte    schedule 19.12.2012

Можете да го намерите, като използвате C-h v, последвано от името на тази променлива.

(defcustom byte-compile-dest-file-function nil
  "Function for the function `byte-compile-dest-file' to call.
It should take one argument, the name of an Emacs Lisp source
file name, and return the name of the compiled file."
  :group 'bytecomp
  :type '(choice (const nil) function)
  :version "23.2")

Можете да видите, че това е персонализирана променлива, така че можете да промените нейната стойност на „функция“.

РЕДАКТИРАНЕ: Не съм толкова сигурен, че това е променливата, която искате да промените. Всъщност можете да видите, че често се занимава с променливи директории, не виждам как да задам определена директория, където трябва да отидат всички .elc.

person PascalVKooten    schedule 19.12.2012