cooperate with tethered-executable builds
This commit is contained in:
parent
32f8bfd90e
commit
fc813b32ca
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
(define deps '("srfi-lite-lib"
|
(define deps '("srfi-lite-lib"
|
||||||
"data-lib"
|
"data-lib"
|
||||||
["base" #:version "6.4"]
|
["base" #:version "6.5.0.2"]
|
||||||
"syntax-color-lib"
|
"syntax-color-lib"
|
||||||
["draw-lib" #:version "1.13"]
|
["draw-lib" #:version "1.13"]
|
||||||
["snip-lib" #:version "1.2"]
|
["snip-lib" #:version "1.2"]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#lang info
|
#lang info
|
||||||
|
|
||||||
(define version '(400))
|
(define version '(400))
|
||||||
(define post-install-collection "installer.rkt")
|
(define install-collection "installer.rkt")
|
||||||
(define copy-man-pages '("mred.1"))
|
(define copy-man-pages '("mred.1"))
|
||||||
|
|
||||||
(define release-note-files
|
(define release-note-files
|
||||||
|
|
|
@ -3,44 +3,71 @@
|
||||||
compiler/embed
|
compiler/embed
|
||||||
racket/file
|
racket/file
|
||||||
racket/path
|
racket/path
|
||||||
|
setup/dirs
|
||||||
setup/cross-system)
|
setup/cross-system)
|
||||||
|
|
||||||
(provide post-installer)
|
(provide installer)
|
||||||
|
|
||||||
;; Platforms that get a `MrEd' executable:
|
;; Platforms that get a `MrEd' executable:
|
||||||
(define mred-exe-systems '(unix))
|
(define mred-exe-systems '(unix))
|
||||||
|
|
||||||
(define (post-installer path coll user?)
|
(define (installer path coll user? no-main?)
|
||||||
|
(unless no-main?
|
||||||
|
(do-installer path coll user? #f)
|
||||||
|
(when (and (not user?)
|
||||||
|
(find-config-tethered-console-bin-dir))
|
||||||
|
(do-installer path coll #f #t)))
|
||||||
|
(when (find-addon-tethered-console-bin-dir)
|
||||||
|
(do-installer path coll #t #t)))
|
||||||
|
|
||||||
|
(define (do-installer path coll user? tethered?)
|
||||||
(define variants (available-mred-variants))
|
(define variants (available-mred-variants))
|
||||||
(when (memq (cross-system-type) mred-exe-systems)
|
(when (memq (cross-system-type) mred-exe-systems)
|
||||||
(for ([v variants] #:when (memq v '(3m cgc)))
|
(for ([v variants] #:when (memq v '(3m cgc)))
|
||||||
(parameterize ([current-launcher-variant v])
|
(parameterize ([current-launcher-variant v])
|
||||||
(create-embedding-executable
|
(create-embedding-executable
|
||||||
(prep-dir (mred-program-launcher-path "MrEd" #:user? user?))
|
(prep-dir (mred-program-launcher-path "MrEd" #:user? user? #:tethered? tethered?))
|
||||||
#:cmdline '("-I" "scheme/gui/init")
|
#:cmdline (append
|
||||||
|
(if tethered? (if user? (addon-flags) (config-flags)) null)
|
||||||
|
'("-I" "scheme/gui/init"))
|
||||||
#:variant v
|
#:variant v
|
||||||
#:launcher? #t
|
#:launcher? #t
|
||||||
#:gracket? #t
|
#:gracket? #t
|
||||||
#:aux `((relative? . ,(not user?)))))))
|
#:aux `((relative? . ,(not user?)))))))
|
||||||
;; add a mred-text executable that uses the -z flag (preferring a script)
|
;; add a mred-text executable that uses the -z flag (preferring a script)
|
||||||
|
(define tether-mode (and tethered? (if user? 'addon 'config)))
|
||||||
(for ([vs '((script-3m 3m) (script-cgc cgc))])
|
(for ([vs '((script-3m 3m) (script-cgc cgc))])
|
||||||
(let ([v (findf (lambda (v) (memq v variants)) vs)])
|
(let ([v (findf (lambda (v) (memq v variants)) vs)])
|
||||||
(when v
|
(when v
|
||||||
(parameterize ([current-launcher-variant v])
|
(parameterize ([current-launcher-variant v])
|
||||||
(make-gracket-launcher
|
(make-gracket-launcher
|
||||||
|
#:tether-mode tether-mode
|
||||||
'("-I" "scheme/gui/init" "-z")
|
'("-I" "scheme/gui/init" "-z")
|
||||||
(prep-dir (mred-program-launcher-path "mred-text" #:user? user?))
|
(prep-dir (mred-program-launcher-path "mred-text" #:user? user? #:tethered? tethered?))
|
||||||
`([relative? . ,(not user?)] [subsystem . console] [single-instance? . #f]))))))
|
`([relative? . ,(not (or user? tethered?))]
|
||||||
|
[subsystem . console]
|
||||||
|
[single-instance? . #f]))))))
|
||||||
;; add bin/mred script under OS X
|
;; add bin/mred script under OS X
|
||||||
(when (eq? 'macosx (cross-system-type))
|
(when (eq? 'macosx (cross-system-type))
|
||||||
(for ([v variants] #:when (memq v '(script-3m script-cgc)))
|
(for ([v variants] #:when (memq v '(script-3m script-cgc)))
|
||||||
(parameterize ([current-launcher-variant v])
|
(parameterize ([current-launcher-variant v])
|
||||||
(make-gracket-launcher
|
(make-gracket-launcher
|
||||||
'()
|
#:tether-mode tether-mode
|
||||||
(prep-dir (mred-program-launcher-path "MrEd" #:user? user?))
|
null
|
||||||
'([exe-name . "GRacket"] [relative? . ,(not user?)] [exe-is-gracket . #t]))))))
|
(prep-dir (mred-program-launcher-path "MrEd" #:user? user? #:tethered? tethered?))
|
||||||
|
`([exe-name . "GRacket"]
|
||||||
|
[relative? . ,(not (or user? tethered?))]
|
||||||
|
[exe-is-gracket . #t]))))))
|
||||||
|
|
||||||
(define (prep-dir p)
|
(define (prep-dir p)
|
||||||
(define dir (path-only p))
|
(define dir (path-only p))
|
||||||
(make-directory* dir)
|
(make-directory* dir)
|
||||||
p)
|
p)
|
||||||
|
|
||||||
|
(define (addon-flags)
|
||||||
|
(append
|
||||||
|
(config-flags)
|
||||||
|
(list "-A" (path->string (find-system-path 'addon-dir)))))
|
||||||
|
|
||||||
|
(define (config-flags)
|
||||||
|
(list "-C" (path->string (find-config-dir))))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#lang info
|
#lang info
|
||||||
|
|
||||||
(define post-install-collection "installer.rkt")
|
(define install-collection "installer.rkt")
|
||||||
(define copy-man-pages '("gracket.1"))
|
(define copy-man-pages '("gracket.1"))
|
||||||
|
|
|
@ -1,32 +1,47 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
(require launcher
|
(require launcher
|
||||||
racket/path
|
racket/path
|
||||||
racket/file)
|
racket/file
|
||||||
|
setup/dirs)
|
||||||
|
|
||||||
(provide post-installer)
|
(provide installer)
|
||||||
|
|
||||||
(define (post-installer path collection user?)
|
(define (installer path coll user? no-main?)
|
||||||
|
(unless no-main?
|
||||||
|
(do-installer path coll user? #f)
|
||||||
|
(when (and (not user?)
|
||||||
|
(find-config-tethered-console-bin-dir))
|
||||||
|
(do-installer path coll #f #t)))
|
||||||
|
(when (find-addon-tethered-console-bin-dir)
|
||||||
|
(do-installer path coll #t #t)))
|
||||||
|
|
||||||
|
(define (do-installer path collection user? tethered?)
|
||||||
(define variants (available-mred-variants))
|
(define variants (available-mred-variants))
|
||||||
|
(define tether-mode (and tethered? (if user? 'addon 'config)))
|
||||||
;; add a gracket-text executable that uses the -z flag (preferring a script)
|
;; add a gracket-text executable that uses the -z flag (preferring a script)
|
||||||
(for ([vs '((script-3m 3m) (script-cgc cgc))])
|
(for ([vs '((script-3m 3m) (script-cgc cgc))])
|
||||||
(let ([v (findf (lambda (v) (memq v variants)) vs)])
|
(let ([v (findf (lambda (v) (memq v variants)) vs)])
|
||||||
(when v
|
(when v
|
||||||
(parameterize ([current-launcher-variant v])
|
(parameterize ([current-launcher-variant v])
|
||||||
(make-mred-launcher
|
(make-mred-launcher
|
||||||
|
#:tether-mode tether-mode
|
||||||
'("-z")
|
'("-z")
|
||||||
(prep-dir
|
(prep-dir
|
||||||
(mred-program-launcher-path "gracket-text" #:user? user?))
|
(mred-program-launcher-path "gracket-text" #:user? user? #:tethered? tethered?))
|
||||||
`([subsystem . console] [single-instance? . #f]
|
`([subsystem . console]
|
||||||
[relative? . ,(not user?)]))))))
|
[single-instance? . #f]
|
||||||
|
[relative? . ,(not (or user? tethered?))]))))))
|
||||||
;; add a bin/gracket (in addition to lib/gracket)
|
;; add a bin/gracket (in addition to lib/gracket)
|
||||||
(for ([vs '((script-3m 3m) (script-cgc cgc))])
|
(for ([vs '((script-3m 3m) (script-cgc cgc))])
|
||||||
(let ([v (findf (lambda (v) (memq v variants)) vs)])
|
(let ([v (findf (lambda (v) (memq v variants)) vs)])
|
||||||
(when v
|
(when v
|
||||||
(parameterize ([current-launcher-variant v])
|
(parameterize ([current-launcher-variant v])
|
||||||
(make-mred-launcher null
|
(make-mred-launcher #:tether-mode tether-mode
|
||||||
|
null
|
||||||
(prep-dir
|
(prep-dir
|
||||||
(mred-program-launcher-path "GRacket" #:user? user?))
|
(mred-program-launcher-path "GRacket" #:user? user? #:tethered? tethered?))
|
||||||
'([exe-name . "GRacket"] [relative? . ,(not user?)]
|
`([exe-name . "GRacket"]
|
||||||
|
[relative? . ,(not (or user? tethered?))]
|
||||||
[exe-is-gracket . #t])))))))
|
[exe-is-gracket . #t])))))))
|
||||||
|
|
||||||
(define (prep-dir p)
|
(define (prep-dir p)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user