diff --git a/examples/game-of-life-png/example/life.sld b/examples/game-of-life-png/example/life.sld index d1a0f84f..85b58c38 100644 --- a/examples/game-of-life-png/example/life.sld +++ b/examples/game-of-life-png/example/life.sld @@ -1,4 +1,5 @@ (define-library (example life) + (include-c-header "../write-png.h") (export life) (import (scheme base) ;TODO: (except (scheme base) set!) (scheme write) diff --git a/scheme/cyclone/libraries.sld b/scheme/cyclone/libraries.sld index a642026d..93d192e8 100644 --- a/scheme/cyclone/libraries.sld +++ b/scheme/cyclone/libraries.sld @@ -30,6 +30,7 @@ lib:imports lib:body lib:includes + lib:include-c-headers lib:import->filename lib:import->metalist lib:import->path @@ -115,6 +116,15 @@ (tagged-list? 'include code)) (cddr ast)))) +(define (lib:include-c-headers ast) + (map + (lambda (inc-lst) + (cadr inc-lst)) + (filter + (lambda (code) + (tagged-list? 'include-c-header code)) + (cddr ast)))) + ;; TODO: include-ci, cond-expand (define (lib:atom->string atom)