about summary refs log tree commit diff
path: root/nixpkgs/pkgs/build-support/emacs/emacs-funcs.sh
blob: e1e6a3b62208768af30987569a040651f4295475 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
addToEmacsLoadPath() {
  local lispDir="$1"
  if [[ -d $lispDir && ${EMACSLOADPATH-} != *"$lispDir":* ]] ; then
    # It turns out, that the trailing : is actually required
    # see https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Search.html
    export EMACSLOADPATH="$lispDir:${EMACSLOADPATH-}"
  fi
}

addToEmacsNativeLoadPath() {
  local nativeDir="$1"
  if [[ -d $nativeDir && ${EMACSNATIVELOADPATH-} != *"$nativeDir":* ]]; then
    export EMACSNATIVELOADPATH="$nativeDir:${EMACSNATIVELOADPATH-}"
  fi
}

addEmacsVars () {
  addToEmacsLoadPath "$1/share/emacs/site-lisp"

  if [ -n "${addEmacsNativeLoadPath:-}" ]; then
    addToEmacsNativeLoadPath "$1/share/emacs/native-lisp"
  fi

  # Add sub paths to the Emacs load path if it is a directory
  # containing .el files. This is necessary to build some packages,
  # e.g., using trivialBuild.
  for lispDir in \
      "$1/share/emacs/site-lisp/"* \
      "$1/share/emacs/site-lisp/elpa/"*; do
    if [[ -d $lispDir && "$(echo "$lispDir"/*.el)" ]] ; then
      addToEmacsLoadPath "$lispDir"
    fi
  done
}