You can find an example of turning a simple single file hello.tcl into a Starkit under the title Build Your First Starkit. This page's tutorial takes you beyond a simple single file hello.tcl Starkit into a multi-file program hello.tcl Starkit. The code presented here was developed quickly after chatting in the Tkchat application.
Hello.vfs/ Hello.vfs/lib/
Hello.vfs is where our code will go and Hello.vfs/lib is where any extensions may be placed.
package require starkit starkit::startup # Load our main source into the starkit set dir [file dirname [info script]] source [file join $dir hello.tcl]
package require Tk # Get the current scripts directory set dir [file dirname [info script]] # Source in the supporting file with the current scripts # directory as it's base source [file join $dir funcs.tcl] # The example code button .hello -text "Say Hello" -command { sayHello "World" } pack .hello -padx 5 -pady 5 -expand 1 -fill both
# Supporting functions proc sayHello {toWho} { tk_messageBox -icon info -type ok -title "Saying Hello" -message "Hello, $toWho" }
sdx wrap Hello.kit
tclkit Hello.kit
Now, the nice thing about this method is that you can also develop/test/run/deploy code as a standard Tcl/Tk app as well.
tclsh Hello.vfs/hello.tcl
will run your app with out problems under tclsh. In the end my directory entire project structure looks like:
HelloProject/ HelloProject/Hello.vfs/ HelloProject/Hello.vfs/main.tcl HelloProject/Hello.vfs/hello.tcl HelloProject/Hello.vfs/funcs.tcl HelloProject/Hello.vfs/lib
At a later date (once I have it all working) I'll add in my Makefile that gives me simple commands like:
make kit make exe make run-tcl make run-kit make run-exe
This page was created by a novice, so your milage may vary. Please, comment on this if you have further instructions or better ways of doing it.