1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
proc getChosenBuildModule {kind args} {
# default value for 'module show'
set ret <select_$kind>
foreach arg $args {
if {[is-loaded $arg]} {
set ret $arg
break
}
}
return $ret
}
proc availForBuildModule {kind args} {
# define requirement
eval prereq $args
# return loaded build module
return [eval getChosenBuildModule $kind $args]
}
proc getChosenFlavorModule {args} {
foreach arg $args {
if {[is-loaded $arg]} {
lappend ret [file tail $arg]
}
}
# default value for 'module show'
if {![info exists ret]} {
set ret <select_flavor>
}
return $ret
}
proc availForFlavorModule {args} {
foreach arg $args {
lappend flavorlist flavor/$::name/$arg
}
# define requirement
eval prereq $flavorlist
# return loaded flavor module
return [eval getChosenFlavorModule $flavorlist]
}
proc isFlavorEnabled {name} {
return [expr {[lsearch -exact $::flavorlist $name] != -1}]
}
proc getBuildToolchain {} {
foreach buildvar [info vars ::build*] {
if {[info exists toolchain]} {
append toolchain __
}
append toolchain [string map [list / --] [set $buildvar]]
}
return [expr {[info exists toolchain] ? $toolchain : {}}]
}
proc getFlavorId {} {
return [expr {[info exists ::flavorlist] ? [join $::flavorlist __] : {}}]
}
proc getInstallPrefix {} {
set toolchain [getBuildToolchain]
set flavor [getFlavorId]
set prefix /apps/$::name-$::version
if {$toolchain ne {}} {
append prefix /$toolchain
}
if {$flavor ne {}} {
append prefix /$flavor
}
return $prefix
}
# vim:set tabstop=4 shiftwidth=4 expandtab autoindent syntax=tcl:
|