-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefiner.rkt
More file actions
36 lines (32 loc) · 1.31 KB
/
Copy pathdefiner.rkt
File metadata and controls
36 lines (32 loc) · 1.31 KB
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
#lang racket
(require ffi/unsafe
ffi/unsafe/define)
(define (get-llvm-lib-dir)
(let ([path (find-executable-path "llvm-config")])
(if (not path)
(list "/usr/local/opt/llvm/lib"
"/usr/lib/llvm-6.0") ; fallback
(list (string-trim
(with-output-to-string
(λ () (system* path "--libdir"))))))))
(define-ffi-definer define-llvm (ffi-lib "libLLVM"
'("6" #f)
;TODO: Add more search directories
#:get-lib-dirs get-llvm-lib-dir))
(provide define-llvm)
(define _LLVMModuleRef (_cpointer 'LLVMOpaqueModule))
(define _LLVMTypeRef (_cpointer 'LLVMOpaqueType))
(define _LLVMValueRef (_cpointer 'LLVMOpaqueValue))
(define _LLVMBasicBlockRef (_cpointer 'LLVMOpaqueBasicBlock))
(define _LLVMBuilderRef (_cpointer 'LLVMOpaqueBuilder))
(define _LLVMGenericValueRef (_cpointer 'LLVMOpaqueGenericValue))
(define _LLVMPassManagerRef (_cpointer 'LLVMOpaquePassManager))
(define _LLVMPassManagerBuilderRef (_cpointer 'LLVMOpaquePassManagerBuilder))
(provide _LLVMModuleRef
_LLVMTypeRef
_LLVMValueRef
_LLVMBasicBlockRef
_LLVMBuilderRef
_LLVMGenericValueRef
_LLVMPassManagerRef
_LLVMPassManagerBuilderRef)