File: frama-c-init.el

package info (click to toggle)
frama-c 20161101%2Bsilicon%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 42,324 kB
  • ctags: 35,695
  • sloc: ml: 200,142; ansic: 31,465; makefile: 2,334; sh: 1,643; lisp: 259; python: 85; asm: 26
file content (60 lines) | stat: -rw-r--r-- 3,187 bytes parent folder | download
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;                                                                        ;
;  This file is part of Frama-C.                                         ;
;                                                                        ;
;  Copyright (C) 2007-2016                                               ;
;    CEA (Commissariat à l'énergie atomique et aux énergies              ;
;         alternatives)                                                  ;
;                                                                        ;
;  you can redistribute it and/or modify it under the terms of the GNU   ;
;  Lesser General Public License as published by the Free Software       ;
;  Foundation, version 2.1.                                              ;
;                                                                        ;
;  It 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 Lesser General Public License for more details.                   ;
;                                                                        ;
;  See the GNU Lesser General Public License version 2.1                 ;
;  for more details (enclosed in the file licenses/LGPLv2.1).            ;
;                                                                        ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; *** Auxiliary definitions for Frama-C Emacs files ***
;;
;; This file is automatically included by both 'frama-c-dev.el' and
;; 'frama-c-recommended.el'. You do not need to do anything here.
;;

;; Macro to avoid crashing if the required file does not exist
(defmacro safe-require (symbol &rest body)
  `(condition-case nil
       (progn
         (require ',symbol)
         ,@body)
     (error (message (format "Require NOT available: %s" ',symbol)) nil)))

;; Macro to avoid crashing if the library to load does not exist
(defun safe-load-library (path)
  (condition-case nil
      (load-library path)
    (error (message (format "Library NOT available: %s" path)) nil)))

;; Add opam emacs directory to the load-path
(condition-case nil
    (progn nil (setq opam-share (substring
                                 (shell-command-to-string
                                  "opam config var share 2> /dev/null") 0 -1))
           (add-to-list 'load-path (concat opam-share "/emacs/site-lisp")))
  (error (message "Error configuring OPAM, check your installation.") nil))

;; Setup environment variables using OPAM
;; This helps when compiling OCaml installed via OPAM directly from Emacs
(condition-case nil
    (dolist (var (car (read-from-string (shell-command-to-string
                                         "opam config env --sexp"))))
      (setenv (car var) (cadr var)))
  (error (message "Error configuring OPAM sexp, check your installation.") nil))

;; One of the `opam config env` variables is PATH. Update `exec-path` to that.
(setq exec-path (split-string (getenv "PATH") path-separator))