support building with chicken-install too
Change-Id: I47510ca9d5892f1def55ab14f610ba796a6a6964
This commit is contained in:
parent
933b942a62
commit
56b114ef2c
8 changed files with 55 additions and 10 deletions
|
|
@ -5,9 +5,16 @@
|
|||
(component-options
|
||||
(csc-options "-X" "r7rs" "-R" "r7rs" "-optimize-level" "3" "-C" "-D_GNU_SOURCE"))
|
||||
(components
|
||||
(generated-source-file stock_overrides.h
|
||||
; Also generates stub man_rust.h, man_go.h, man_ninja.go
|
||||
(custom-build "generate-files")
|
||||
(source-dependencies "overrides.json"))
|
||||
(program zilch-cli-go
|
||||
(component-dependencies stock_overrides.h)
|
||||
(source "zilch-go.scm"))
|
||||
(program zilch-cli-rust
|
||||
(component-dependencies stock_overrides.h)
|
||||
(source "zilch-rust.scm"))
|
||||
(program zilch-cli-ninja
|
||||
(component-dependencies stock_overrides.h)
|
||||
(source "zilch-ninja.scm"))))
|
||||
|
|
|
|||
7
cli/generate-files
Executable file
7
cli/generate-files
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
(cat ./overrides.json; printf '\0') | xxd -i -n stock_overrides > stock_overrides.h
|
||||
(printf '(no info)\0') | xxd -i -n man_rust > man_rust.h
|
||||
(printf '(no info)\0') | xxd -i -n man_go > man_go.h
|
||||
(printf '(no info)\0') | xxd -i -n man_ninja > man_ninja.h
|
||||
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
(zilch magic) (zilch nix binproto) (zilch nix daemon) (zilch nix drv) (zilch zexpr)
|
||||
(chicken base) (chicken format)
|
||||
(srfi 128) (srfi 132) (srfi 146) (srfi 151))
|
||||
|
||||
(export zfile zsymlink zdir
|
||||
z-file? z-directory? z-symlink?
|
||||
zfile->store)
|
||||
|
|
@ -178,7 +179,7 @@
|
|||
(write-padding total-len)
|
||||
(write-bytevector (make-ustar-header #o777 0 #\2)))
|
||||
|
||||
;; Serialize the specified structure as a ustar-style (with pax extensions) tape archive to the standard output port. The filename is specified by `name`.
|
||||
;; Serialize the specified structure as a ustar-style (with pax extensions) tape archive to the current output port. The filename is specified by `name`.
|
||||
(define (serialize-as-tar f name)
|
||||
(cond
|
||||
((z-file? f) (write-pax-file name (z-file-executable f) (z-file-contents f)))
|
||||
|
|
@ -214,10 +215,8 @@
|
|||
((z-symlink? val) (z-symlink-set-cache val cached)))
|
||||
cached)
|
||||
|
||||
|
||||
(zexp-add-unquote-handler
|
||||
(lambda (val)
|
||||
(if (or (z-file? val) (z-symlink? val) (z-directory? val))
|
||||
(string-append (zexp-unquote (zfile->store val)) "/-")
|
||||
#f)))))
|
||||
|
||||
|
|
|
|||
5
lang/go/utils/generate-files
Executable file
5
lang/go/utils/generate-files
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
(cat utils/parser/main.go; printf '\0') | xxd -i -n parser_source > parser_source.h
|
||||
(cat utils/dirhash/main.go; printf '\0') | xxd -i -n dirhash_source > dirhash_source.h
|
||||
(cat utils/unzip-one/main.go; printf '\0') | xxd -i -n unzip_one_source > unzip_one_source.h
|
||||
|
|
@ -5,6 +5,10 @@
|
|||
(component-options
|
||||
(csc-options "-X" "r7rs" "-X" "zilch.zexpr" "-R" "r7rs" "-optimize-level" "3"))
|
||||
(components
|
||||
(generated-source-file parser_source.h
|
||||
; Also generates dirhash_source.h, unzip_one_source.h
|
||||
(custom-build "utils/generate-files")
|
||||
(source-dependencies "utils/parser/main.go" "utils/dirhash/main.go" "utils/unzip-one/main.go"))
|
||||
(extension zilch.lang.go
|
||||
(source "src/go.sld")
|
||||
(component-dependencies zilch.lang.go.core))
|
||||
|
|
@ -16,10 +20,10 @@
|
|||
(component-dependencies zilch.lang.go.stdlib zilch.lang.go zilch.lang.go.vfs zilch.lang.go.sum zilch.lang.go.fetch zilch.lang.go.package zilch.lang.go.version))
|
||||
(extension zilch.lang.go.package
|
||||
(source "src/package.sld")
|
||||
(component-dependencies zilch.lang.go.stdlib zilch.lang.go zilch.lang.go.vfs))
|
||||
(component-dependencies parser_source.h zilch.lang.go.stdlib zilch.lang.go zilch.lang.go.vfs))
|
||||
(extension zilch.lang.go.vfs
|
||||
(source "src/vfs.sld")
|
||||
(component-dependencies zilch.lang.go.stdlib zilch.lang.go zilch.lang.go.sum zilch.lang.go.fetch))
|
||||
(component-dependencies parser_source.h zilch.lang.go.stdlib zilch.lang.go zilch.lang.go.sum zilch.lang.go.fetch))
|
||||
(extension zilch.lang.go.sum
|
||||
(source "src/sum.sld"))
|
||||
(extension zilch.lang.go.fetch
|
||||
|
|
|
|||
6
lang/rust/helpers/generate-files
Normal file
6
lang/rust/helpers/generate-files
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
(cat helpers/src/bin/buildscript-runner.rs; printf '\0') | xxd -i -n runner_source > runner_source.h
|
||||
(cat helpers/src/bin/rustc-wrapper.rs; printf '\0') | xxd -i -n rustc_wrap_source > rustc_wrap_source.h
|
||||
(cat helpers/src/bin/cfg-reader.rs; printf '\0') | xxd -i -n cfgfetch_source > cfgfetch_source.h
|
||||
(cat helpers/src/bin/false.rs; printf '\0') | xxd -i -n false_source > false_source.h
|
||||
|
|
@ -5,18 +5,25 @@
|
|||
(component-options
|
||||
(csc-options "-X" "r7rs" "-X" "zilch.zexpr" "-R" "r7rs" "-optimize-level" "3"))
|
||||
(components
|
||||
(generated-source-file runner_source.h
|
||||
; Also generates rustc_wrap_source.h, cfgfetch_source.h, false_source.h
|
||||
(custom-build "helpers/generate-files")
|
||||
(source-dependencies
|
||||
"helpers/src/bin/buildscript-runner.rs" "helpers/src/bin/rustc-wrapper.rs"
|
||||
"helpers/src/bin/cfg-reader.rs" "helpers/src/bin/false.rs"))
|
||||
(extension zilch.lang.rust
|
||||
(source "src/rust.sld"))
|
||||
(source "src/rust.sld")
|
||||
(component-dependencies runner_source.h))
|
||||
(extension zilch.lang.rust.registry
|
||||
(source "src/registry.sld"))
|
||||
(extension zilch.lang.rust.cargo
|
||||
(source "src/cargo.sld")
|
||||
(component-dependencies zilch.lang.rust zilch.lang.rust.registry zilch.lang.rust.cfg))
|
||||
(component-dependencies runner_source.h zilch.lang.rust zilch.lang.rust.registry zilch.lang.rust.cfg))
|
||||
(extension zilch.lang.rust.cfg
|
||||
(source "src/cfg.sld"))
|
||||
(extension zilch.lang.rust.build-script
|
||||
(source "src/build-script.sld")
|
||||
(component-dependencies zilch.lang.rust))
|
||||
(component-dependencies runner_source.h zilch.lang.rust))
|
||||
(extension zilch.lang.rust.resolver
|
||||
(source "src/resolver.sld")
|
||||
(component-dependencies zilch.lang.rust zilch.lang.rust.registry zilch.lang.rust.cargo zilch.lang.rust.build-script))))
|
||||
(component-dependencies runner_source.h zilch.lang.rust zilch.lang.rust.registry zilch.lang.rust.cargo zilch.lang.rust.build-script))))
|
||||
|
|
|
|||
|
|
@ -36,6 +36,12 @@
|
|||
(set! counter (+ counter 1))
|
||||
(string-append "1980-01-01 00:00:" (number->string counter)))
|
||||
|
||||
; Workaround to deal with the non-scheme component dependencies.
|
||||
(define (is-source-file hdr)
|
||||
(unless (string? hdr) (set! hdr (symbol->string hdr)))
|
||||
(define len (string-length hdr))
|
||||
(string=? (string-copy hdr (- len 2)) ".h"))
|
||||
|
||||
(define (process-component component)
|
||||
(define name (symbol->string (cadr component)))
|
||||
(define source #f)
|
||||
|
|
@ -49,6 +55,10 @@
|
|||
((csc-options) (set! csc-options (append csc-options (cdr v))))))
|
||||
(cddr component))
|
||||
|
||||
(define new-deps '())
|
||||
(for-each (lambda (d) (unless (is-source-file d) (set! new-deps (cons d new-deps)))) deps)
|
||||
(set! deps new-deps)
|
||||
|
||||
(define flagobj (list (cons 'unit name)))
|
||||
(define flagstr "")
|
||||
(unless (eq? csc-options shared-flags)
|
||||
|
|
@ -128,7 +138,7 @@ rule install
|
|||
(for-each (lambda (l) (write-string (string-append " " (make-escaped-string l)))) link-flags)
|
||||
(write-string "\n"))) (cdr val)))
|
||||
(when (eq? (car val) 'components)
|
||||
(for-each process-component (cdr val))))
|
||||
(for-each (lambda (p) (when (eq? 'extension (car p)) (process-component p))) (cdr val))))
|
||||
egg)
|
||||
(emit-build (list (string-append outdir "/" egg-name ".egg-info")) '() "install" (list (string-append egg-name ".egg-info")) '() '())
|
||||
(set! installed-files (cons (string-append outdir "/" egg-name ".egg-info") installed-files))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue