cf: StackExchange

((nil . ((eval . (set (make-local-variable 'my-project-path)
                      (file-name-directory
                       (let ((d (dir-locals-find-file ".")))
                         (if (stringp d) d (car d))))))
         (cmake-ide-project-dir . my-project-path)
         (eval . (setq cmake-ide-build-dir (concat my-project-path "build")))
         )))

上のように書くと、my-project-pathに、.dir-locals.elのあるディレクトリのパスが入る。

  • make-local-variableで、シンボルをローカル変数にできる
  • evalで、cdrを評価できる

という感じなのかね。