?? 01zinc.tcl
字號:
set zincHome $env(WIND_BASE) set zincDBDir $zincHome/host/resource/ugl set zincConfigDir $zincHome/target/h/zinc/configTool # validate presence of data base if {![file exists $zincDBDir/uglDB.cfg]} { noticePost error "Data Base files not found - Make sure WindML support is installed" return } # make sure the configuration directory is present file mkdir $zincConfigDir# set zDebugFd [open $zincConfigDir/debug w] # Read the data base zincReadUglDB # Fill in controls zincSetFileList dialogSetValue "Zinc Configuration" "Processor" $zincArchList dialogSetValue "Zinc Configuration" "Configuration Item" $zincConfigItemList # Post the dialog dialogPost "Zinc Configuration" zincConfigClear set zincConfigChange 0}###################################################################### zincAddNewTool - add slot for a new build tool in data base#proc zincAddNewTool {zToolName} { global zincToolDB global zincToolAllList if { [lsearch $zincToolAllList $zToolName] == -1 } { lappend zincToolAllList $zToolName set zincToolDB($zToolName,ARCH) {} set zincToolDB($zToolName,TOOL) "" }}###################################################################### zincAddTool - add a WindML build tool #proc zincAddTool {line fd} { global zincToolDB global zincToolAllList global zincConfigMisc set zToolName "" set line [gets $fd] while {![eof $fd]} { set arg [lrange $line 1 end] switch [lindex $line 0] { "NAME" { set zToolName $arg; zincAddNewTool $zToolName } "ARCH" { lappend zincToolDB($zToolName,ARCH) $arg } "TOOL" { set zincToolDB($zToolName,TOOL) $arg } "END" { set zincConfigMisc(BUILD_TOOL) [lindex $zincToolAllList 0]; return } } set line [gets $fd] }}###################################################################### zincReadUglDB - read the UGL data base files#proc zincReadUglDB {} { global zincDBDir global zincArchList global zincToolAllList set zincToolAllList {} # Only read data base if not already read set listLength [expr [llength $zincArchList]] if {$listLength != 0} { return } # Get the list of fonts in the font directory set tmpFileList [glob -nocomplain $zincDBDir/*.cfg] foreach file $tmpFileList { set fd [open $file r] set zincDBstate 0 set line [gets $fd] while {![eof $fd]} { switch [lrange $line 0 1] { "## ARCHITECTURE" { set zincDBstate 1; set line [gets $fd] } "## TOOLS" { set zincDBstate 2; set line [gets $fd] } "## GRAPHICS" { set zincDBstate 0; set line [gets $fd]; continue } "## OUTPUT" { set zincDBstate 0; set line [gets $fd]; continue } "## KMAP" { set zincDBstate 0; set line [gets $fd]; continue } "## POINTER" { set zincDBstate 0; set line [gets $fd]; continue } "## KEYBOARD" { set zincDBstate 0; set line [gets $fd]; continue } "## FONTS" { set zincDBstate 0; set line [gets $fd]; continue } "## AUDIO" { set zincDBstate 0; set line [gets $fd]; continue } "## AGFA" { set zincDBstate 0; set line [gets $fd]; continue } "" { set line [gets $fd]; continue } } set comment [lrange $line 0 1] if {[string index $comment 0] == "#" || $zincDBstate == 0} { set line [gets $fd] continue } if {$zincDBstate == 1} { set archType [split $line - ] set bspCnt [llength $archType] if {$bspCnt == 1} { lappend zincArchList $line } } else { zincAddTool $line $fd } set line [gets $fd] } close $fd }}###################################################################### zincConfigClear - clear out any configuration#proc zincConfigClear {} { global zincArchType global zincArchList global zincConfigMisc global zincConfigCompile # Initialize Configuration Options set zincConfigCompile(ZINC_UNICODE) "0" set zincConfigCompile(ZINC_CODE_SET) "1" set zincConfigCompile(ZINC_ERROR_SYS) "1" set zincConfigCompile(ZINC_HELP_TIPS) "1" set zincConfigCompile(ZINC_KEYBOARD) "1" set zincConfigCompile(ZINC_MOUSE) "1" set zincConfigCompile(ZINC_SEARCH_PATH) "1" set zincConfigCompile(ZINC_PERSIST) "1" set zincConfigCompile(ZINC_READ) "1" set zincConfigCompile(ZINC_WRITE) "1" # Initialize miscellaneous configuration set zincConfigMisc(DEBUG_BUILD) "0" set zincConfigMisc(BUILD_TOOL) "gnu" set zincArchType [lindex $zincArchList 0] listSelectionChange "Zinc Configuration" "Processor" $zincArchType}###################################################################### zincConfigSelect - process the configuration select action#proc zincConfigSelect {configuration} { global zincConfigDir global zincConfigChange global zincConfigName global zincArchType global zincConfigMisc global zincConfigCompile if {$zincConfigChange == 1} { set answer [noticePost question "Your Configuration has changed.\nDo you want to save your previous configuration?" Yes No] if {$answer == 1} { set newConfigName $configuration listSelectionChange "Zinc Configuration" "Configuration" $zincConfigName zincConfigSave set configuration $newConfigName listSelectionChange "Zinc Configuration" "Configuration" $newConfigName } } if {$configuration == "New configuration..."} { dialogPost "New Config. File" return } set zincConfigName $configuration # Read in configuration values set fd [open $zincConfigDir/$configuration.cfg r] set line [gets $fd] while {![eof $fd]} { set index [lsearch $line :] if {$index >= 0} { set field [lrange $line 0 [expr $index - 1]] set arg [lrange $line [expr $index + 1] end] switch $field { "ARCHITECTURE" {set zincArchType $arg } "BUILD_DEBUG" {set zincConfigMisc(DEBUG_BUILD) $arg } "BUILD_TOOL" {set zincConfigMisc(BUILD_TOOL) $arg } "ZINC_UNICODE" {set zincConfigCompile(ZINC_UNICODE) $arg } "ZINC_CODE_SET" {set zincConfigCompile(ZINC_CODE_SET) $arg } "ZINC_ERROR_SYS" {set zincConfigCompile(ZINC_ERROR_SYS) $arg } "ZINC_HELP_TIPS" {set zincConfigCompile(ZINC_HELP_TIPS) $arg } "ZINC_KEYBOARD" {set zincConfigCompile(ZINC_KEYBOARD) $arg } "ZINC_MOUSE" {set zincConfigCompile(ZINC_MOUSE) $arg } "ZINC_SEARCH_PATH" {set zincConfigCompile(ZINC_SEARCH_PATH) $arg } "ZINC_PERSIST" {set zincConfigCompile(ZINC_PERSIST) $arg } "ZINC_READ" {set zincConfigCompile(ZINC_READ) $arg } "ZINC_WRITE" {set zincConfigCompile(ZINC_WRITE) $arg } } } set line [gets $fd] } close $fd zincUnpostAll listSelectionChange "Zinc Configuration" "Processor" $zincArchType set zincConfigChange 0} ########################################################### zincConfigArch - process the architecture select action#proc zincConfigArch {archType} { global zincArchType global zincConfigChange set zincArchType $archType set zincConfigChange 1}###################################################################### zincSetConfigItem - launch the selected configuration definition window#proc zincSetConfigItem {page} { set configname [dialogGetValue "Zinc Configuration" "Configuration"] if {$configname == ""} { noticePost warning "Need to specify a configuration file" return } set archType [dialogGetValue "Zinc Configuration" "Processor"] if {$archType == ""} { noticePost warning "Need to specify a processor type" return } if { $page == "Configuration Options" } { dialogPost "Configuration Options" zincCompileConfig } if { $page == "Build Options" } { dialogPost "Build Options" zincMiscConfig }}###################################################################### zincCompileConfig - build the miscellaneous definition window#proc zincCompileConfig {} { global zincConfigCompile dialogSetValue "Configuration Options" "Unicode" $zincConfigCompile(ZINC_UNICODE) dialogSetValue "Configuration Options" "Code Set Data (required for Unicode)" $zincConfigCompile(ZINC_CODE_SET) dialogSetValue "Configuration Options" "Error System" $zincConfigCompile(ZINC_ERROR_SYS) dialogSetValue "Configuration Options" "Help Tips" $zincConfigCompile(ZINC_HELP_TIPS) dialogSetValue "Configuration Options" "Keyboard" $zincConfigCompile(ZINC_KEYBOARD) dialogSetValue "Configuration Options" "Mouse" $zincConfigCompile(ZINC_MOUSE) dialogSetValue "Configuration Options" "Search Path" $zincConfigCompile(ZINC_SEARCH_PATH) dialogSetValue "Configuration Options" "Persistence" $zincConfigCompile(ZINC_PERSIST) dialogSetValue "Configuration Options" "Read" $zincConfigCompile(ZINC_READ) dialogSetValue "Configuration Options" "Write" $zincConfigCompile(ZINC_WRITE) }###################################################################### zincToolSelect - process the tool select list entry#proc zincToolSelect {tool} { global zincToolDB global zincConfigMisc global zincConfigChange if { [ string compare $tool $zincConfigMisc(BUILD_TOOL) ] } { set zincConfigMisc(BUILD_TOOL) $tool set zincConfigChange 1 }}###################################################################### zincMiscConfig - build the miscellaneous definition window#proc zincMiscConfig {} { global zincConfigMisc global zincToolDB global zincArchType global zincConfigChange global zincToolAllList dialogSetValue "Build Options" "Build with debug" $zincConfigMisc(DEBUG_BUILD) # Set up tool list for architecture set toolList {} foreach tool $zincToolAllList { foreach arch $zincToolDB($tool,ARCH) { if {$arch == $zincArchType} { lappend toolList $tool } } } if { [lsearch $toolList $zincConfigMisc(BUILD_TOOL)] == -1 } { set zincConfigMisc(BUILD_TOOL) [lindex $toolList 0] set zincConfigChange 1 } dialogSetValue "Build Options" "Build Tool" $toolList listSelectionChange "Build Options" "Build Tool" $zincConfigMisc(BUILD_TOOL)}###################################################################### zincWriteConfigH - generate the configuration header file#proc zincWriteConfigH {configname dateInfo} { global zincFileWarningMsg global zincArchType global zincConfigDir global zincConfigCompile global zincConfigMisc
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -