@ -1372,7 +1372,7 @@ proc ::punkboot::punkboot_gethelp {args} {
append h " - b u i l d ( o r c o p y i f b u i l d n o t r e q u i r e d ) b o t h . t m a n d p k g I n d e x . t c l b a s e d p a c k a g e s f r o m s r c t o t h e i r c o r r e s p o n d i n g l o c a t i o n s u n d e r < p r o j e c t d i r > " \ n
append h " T h i s d o e s n o t s c a n s r c / r u n t i m e a n d s r c / v f s f o l d e r s t o b u i l d k i t / z i p k i t / c o o k f s e x e c u t a b l e s " \ n \ n
append h " $ s c r i p t n a m e b o o t s u p p o r t " \ n
append h " - u p d a t e t h e s r c / b o o t s u p p o r t m o d u l e s a s w e l l a s t h e m i x t e m p l a t e s / l a y o u t s / < l a y o u t n a m e > / s r c / b o o t s u p p o r t m o d u l e s i f t h e f o l d e r e x i s t s " \ n
append h " - u p d a t e t h e s r c / b o o t s u p p o r t m o d u l e s a s w e l l a s t h e s r c / p r o j e c t _ l a y o u t s / c u s t o m / _ p r o j e c t / < l a y o u t n a m e > / s r c / b o o t s u p p o r t m o d u l e s i f t h e f o l d e r e x i s t s " \ n
append h " - b o o t s u p p o r t m o d u l e s a r e p u l l e d f r o m l o c a t i o n s s p e c i f i e d i n i n c l u d e _ m o d u l e s . c o n f i g f i l e s w i t h i n e a c h s r c / b o o t s u p p o r t s u b d i r e c t o r y " \ n
append h " - T h i s s h o u l d u s u a l l y b e f r o m m o d u l e s t h a t h a v e b e e n b u i l t a n d t e s t e d i n < p r o j e c t d i r > / m o d u l e s < p r o j e c t d i r > / l i b e t c . " \ n
append h " - b o o t s u p p o r t m o d u l e s a r e a v a i l a b l e t o m a k e . t c l " \ n \ n
@ -1995,6 +1995,21 @@ proc ::punkboot::print_provenance_warnings {warninglines args} {
}
flush stderr
}
# G e n e r a l b u i l d w a r n i n g s t h a t m u s t s t a y n o t i c e a b l e d e s p i t e c h a t t y b u i l d o u t p u t - s a m e
# c o l u m n - 0 g r e p p a b l e - t o k e n + r e c a p - a t - e x i t t r e a t m e n t a s p r o v e n a n c e w a r n i n g s a b o v e .
set : : punkboot::build_warnings_pending [ list ]
proc : : punkboot::print_build_warnings { warninglines args} {
global A
if { ! [ array size A] } { punkboot : : define_global_ansi}
foreach w $warninglines {
regsub { ^ WARNING : } $w " " w
puts stderr " B U I L D - W A R N I N G : $ A ( B A D ) $ w $ A ( R S T ) "
if { " - n o r e c a p " ni $args } {
lappend : : punkboot::build_warnings_pending $w
}
}
flush stderr
}
# A v a i l a b i l i t y p r o b e + s c o p e d d i r t y - s r c c h e c k , s h a r e d b y t h e b u i l d / p r o m o t i o n g a t e b e l o w a n d t h e
# ' c h e c k ' c o m m a n d r e p o r t . R e t u r n s { a v a i l a b l e w a r n i n g l i s t } .
proc : : punkboot::get_src_provenance_warnings { projectroot label} {
@ -2019,6 +2034,11 @@ if {![llength [info commands ::punkboot::exit_original]]} {
puts stderr " P R O V E N A N C E - W A R N I N G : r e c a p o f w a r n i n g ( s ) e m i t t e d e a r l i e r i n t h i s r u n : "
: : punkboot : : print_provenance_warnings $::punkboot::provenance_warnings_pending - norecap
}
if { [ info exists : : punkboot::build_warnings_pending] && [ llength $::punkboot::build_warnings_pending ] } {
puts stderr " "
puts stderr " B U I L D - W A R N I N G : r e c a p o f w a r n i n g ( s ) e m i t t e d e a r l i e r i n t h i s r u n : "
: : punkboot : : print_build_warnings $::punkboot::build_warnings_pending - norecap
}
: : punkboot : : exit_original $returnCode
}
}
@ -3151,14 +3171,7 @@ if {$::punkboot::command in {project packages libs}} {
if { $::punkboot::command in { project packages modules libs} } {
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# t e m p l a t e s
# e . g T h e d e f a u l t p r o j e c t l a y o u t i s m a i n l y f o l d e r s t r u c t u r e a n d r e a d m e f i l e s - b u t h a s s o m e s c r i p t s d e v e l o p e d u n d e r t h e m a i n s r c t h a t w e w a n t t o s y n c
# s r c t o s r c / m o d u l e s / p u n k / m i x / t e m p l a t e s / l a y o u t s / p r o j e c t / s r c
set old_layout_update_list [ list { * } {
} [ list project $sourcefolder / modules/ punk/ mix/ templates] { * } {
} [ list basic $sourcefolder / mixtemplates] { * } {
}
]
# s y n c s c r i p t s d e v e l o p e d u n d e r t h e m a i n s r c ( b u i l d . t c l , m a k e . t c l ) i n t o t h e p r o j e c t _ l a y o u t s c u s t o m / _ p r o j e c t l a y o u t c o p i e s
set layout_bases [ list { * } {
} $sourcefolder / project_layouts / custom/ _project { * } {
}
@ -3835,6 +3848,43 @@ proc merge_over {sourcedir targetdir {depth 0}} {
$t destroy
puts stdout " \n $ { m a r g i n } m e r g e v f s $ s o u r c e d i r o v e r $ t a r g e t d i r d o n e . "
}
# S t a r t u p - s c r i p t p r e s e n c e c h e c k f o r a . v f s s o u r c e f o l d e r a b o u t t o b e b u i l t i n t o a k i t .
# A k i t ' s b o o t e n t r y i s a r o o t - l e v e l m a i n . t c l - e i t h e r a n a c t u a l f i l e , o r a r o o t - l e v e l f a u x l i n k
# r e s o l v i n g t o t h e n a m e m a i n . t c l w h o s e t a r g e t e x i s t s a n d i s a . t c l f i l e ( m a t e r i a l i s e d i n t o t h e
# b u i l d c o p y b y t h e m e r g e _ o v e r f a u x l i n k h a n d l i n g a b o v e ) .
# R e t u r n s a n e m p t y s t r i n g w h e n a s t a r t u p s c r i p t i s p r e s e n t , o t h e r w i s e w a r n i n g t e x t .
# A k i t w i t h o u t a s t a r t u p s c r i p t i s l e g a l ( e . g a b a r e r u n t i m e + p a y l o a d ) - c a l l e r s w a r n a n d
# c o n t i n u e r a t h e r t h a n a b o r t i n g .
proc vfs_startup_script_warning { vfsfolder } {
if { [ file isfile [ file join $vfsfolder main.tcl] ] } {
return " "
}
package require fauxlink
set detail " "
foreach link [ glob - nocomplain - dir $vfsfolder - types f * .fxlnk * .fauxlink] {
if { [ catch { fauxlink : : resolve $link } linkinfo] } {
append detail " ; u n r e s o l v a b l e f a u x l i n k : [ f i l e t a i l $ l i n k ] "
continue
}
if { [ dict get $linkinfo name] ne " m a i n . t c l " } {
continue
}
set linktarget [ dict get $linkinfo targetpath]
if { [ file pathtype $linktarget ] eq " r e l a t i v e " } {
set linktarget [ file join $vfsfolder $linktarget ]
}
if { [ file isfile $linktarget ] } {
if { [ string tolower [ file extension $linktarget ] ] eq " . t c l " } {
return " "
}
append detail " ; m a i n . t c l f a u x l i n k t a r g e t ' $ l i n k t a r g e t ' i s n o t a . t c l f i l e "
} else {
append detail " ; m a i n . t c l f a u x l i n k t a r g e t ' $ l i n k t a r g e t ' d o e s n o t e x i s t "
}
}
return " v f s f o l d e r $ v f s f o l d e r h a s N O S T A R T U P S C R I P T : n o r o o t m a i n . t c l a n d n o r o o t f a u x l i n k r e s o l v i n g t o m a i n . t c l w i t h a n e x i s t i n g . t c l t a r g e t - k i t s b u i l t f r o m i t w i l l h a v e n o b o o t s c r i p t ( b u i l d p r o c e e d i n g a n y w a y ) $ d e t a i l "
}
set startdir [ pwd ]
puts stdout " F o u n d [ l l e n g t h $ v f s _ t a i l s ] . v f s f o l d e r s - c h e c k i n g e a c h f o r e x e c u t a b l e s t h a t m a y n e e d t o b e b u i l t "
cd [ file dirname $buildfolder ]
@ -3904,6 +3954,14 @@ foreach vfstail $vfs_tails {
# a s s e r t $ r u n t i m e s i s a l i s t o f e x e c u t a b l e n a m e s s u f f i x e d w i t h . e x e i f o n w i n d o w s - w h e t h e r o r n o t s p e c i f i e d w i t h . e x e i n t h e m a p v f s . c o n f i g
puts " v f s : $ v f s t a i l r u n t i m e s t o p r o c e s s ( [ l l e n g t h $ r u n t i m e s ] ) : $ r u n t i m e s "
if { [ llength $runtimes ] } {
# o n l y c h e c k s t a r t u p s c r i p t f o r . v f s f o l d e r s t h a t w i l l a c t u a l l y b e b u i l t a g a i n s t a r u n t i m e
# ( e . g _ v f s c o m m o n . v f s i s a m e r g e o v e r l a y w i t h n o r u n t i m e m a p p i n g a n d l e g i t i m a t e l y h a s n o m a i n . t c l )
set startup_warning [ vfs_startup_script_warning $sourcefolder / vfs/ $vfstail ]
if { $startup_warning ne " " } {
: : punkboot : : print_build_warnings [ list $startup_warning ]
}
}
# t o d o - n o n k i t b a s e d - z i p k i t ?
# $ r u n t i m e s m a y n o w i n c l u d e a d a s h e n t r y " - " ( f r o m m a p v f s . c o n f i g f i l e )
foreach runtime_fullname $runtimes {