Added functions to read C linker options

This commit is contained in:
Justin Ethier 2020-02-20 13:42:34 -05:00
parent d9d78c226b
commit 4901bf4832

View file

@ -54,6 +54,9 @@
lib:get-all
lib:get-all-import-deps
lib:get-dep-list
lib:c-linker-options
lib:read-c-linker-options
lib:get-all-c-linker-options
;; Import Database "idb" oriented functions
;;
;; These functions perform operations for a "database" created from
@ -188,6 +191,15 @@
(tagged-list? 'include code))
(cddr ast))))
(define (lib:c-linker-options ast)
(map
(lambda (inc-lst)
(cadr inc-lst))
(filter
(lambda (code)
(tagged-list? 'c-linker-options code))
(cddr ast))))
(define (lib:include-c-headers ast)
(map
(lambda (inc-lst)
@ -380,6 +392,23 @@
(close-input-port fp)
includes))
(define (lib:read-c-linker-options import append-dirs prepend-dirs)
(let* ((lib-name (lib:import->library-name import))
(dir (lib:import->filename lib-name ".sld" append-dirs prepend-dirs))
(fp (open-input-file dir))
(lib (read-all fp))
(options (lib:c-linker-options (car lib))))
(close-input-port fp)
(string-join options " ")))
(define (lib:get-all-c-linker-options imports append-dirs prepend-dirs)
(string-join
(map
(lambda (import)
(lib:read-c-linker-options import append-dirs prepend-dirs))
imports)
" "))
;; Read export list for a given import
(define (lib:import->export-list import append-dirs prepend-dirs)
(let* ((lib-name (lib:import->library-name import))