Provided by: tcllib_1.21+dfsg-1_all
NAME
practcl - The Practcl Module
SYNOPSIS
package require TclOO 1.0 proc practcl::cat fname proc practcl::docstrip text proc putb ?map? text proc Proc name arglist body proc noop ?args? proc practcl::debug ?args? proc practcl::doexec ?args? proc practcl::doexec_in path ?args? proc practcl::dotclexec ?args? proc practcl::domake path ?args? proc practcl::domake.tcl path ?args? proc practcl::fossil path ?args? proc practcl::fossil_status dir proc practcl::os proc practcl::mkzip exename barekit vfspath proc practcl::sort_dict list proc practcl::local_os proc practcl::config.tcl path proc practcl::read_configuration path proc practcl::tcllib_require pkg ?args? proc practcl::platform::tcl_core_options os proc practcl::platform::tk_core_options os proc practcl::read_rc_file filename ?localdat ? proc practcl::read_sh_subst line info proc practcl::read_sh_file filename ?localdat ? proc practcl::read_Config.sh filename proc practcl::read_Makefile filename proc practcl::cputs varname ?args? proc practcl::tcl_to_c body proc practcl::_tagblock text ?style tcl? ?note ? proc practcl::de_shell data proc practcl::grep pattern ?files ? proc practcl::file_lexnormalize sp proc practcl::file_relative base dst proc practcl::findByPattern basedir patterns proc practcl::log fname comment proc practcl::_pkgindex_simpleIndex path proc practcl::_pkgindex_directory path proc practcl::_pkgindex_path_subdir path proc practcl::pkgindex_path ?args? proc practcl::installDir d1 d2 proc practcl::copyDir d1 d2 ?toplevel 1? proc practcl::buildModule modpath proc practcl::installModule modpath DEST proc practcl::trigger ?args? proc practcl::depends ?args? proc practcl::target name info ?action ? method constructor method argspec argspec method comment block method keyword.Annotation resultvar commentblock type name body method keyword.Class resultvar commentblock name body method keyword.class resultvar commentblock name body method keyword.Class_Method resultvar commentblock name ?args? method keyword.method resultvar commentblock name ?args? method keyword.proc commentblock name argspec method reset method Main method section.method keyword method minfo method section.annotation type name iinfo method section.class class_name class_info method section.command procinfo method manpage ?header value? ?footer value? ?authors list? method scan_text text method scan_file filename method _MorphPatterns method define submethod ?args? method graft ?args? method initialize method link command ?args? method morph classname method script script method select method source filename classmethod select object method config.sh method BuildDir PWD method MakeDir srcdir method read_configuration method build-cflags PROJECT DEFS namevar versionvar defsvar method critcl ?args? method Autoconf method BuildDir PWD method ConfigureOpts method MakeDir srcdir method make {} autodetect method make {} clean method make {} compile method make {} install DEST method build-compile-sources PROJECT COMPILE CPPCOMPILE INCLUDES method build-Makefile path PROJECT method build-library outfile PROJECT method build-tclsh outfile PROJECT ?path auto? method BuildDir PWD method make {} autodetect method make {} clean method make {} compile method make {} install DEST method MakeDir srcdir method NmakeOpts method constructor module_object name info ?action_body ? method do method check method output method reset method triggers method constructor parent ?args? method child method method go method cstructure name definition ?argdat ? method include header method include_dir ?args? method include_directory ?args? method c_header body method c_code body method c_function header body ?info ? method c_tcloomethod name body ?arginfo ? method cmethod name body ?arginfo ? method c_tclproc_nspace nspace method c_tclcmd name body ?arginfo ? method c_tclproc_raw name body ?arginfo ? method tcltype name argdat method project-compile-products method implement path method initialize method linktype method generate-cfile-constant method generate-cfile-header method generate-cfile-tclapi method generate-loader-module method Collate_Source CWD method select classmethod select object method code section body method Collate_Source CWD method project-compile-products method generate-debug ?spaces ? method generate-cfile-constant method generate-cfile-public-structure method generate-cfile-header method generate-cfile-global method generate-cfile-private-typedef method generate-cfile-private-structure method generate-cfile-functions method generate-cfile-tclapi method generate-hfile-public-define method generate-hfile-public-macro method generate-hfile-public-typedef method generate-hfile-public-structure method generate-hfile-public-headers method generate-hfile-public-function method generate-hfile-public-includes method generate-hfile-public-verbatim method generate-loader-external method generate-loader-module method generate-stub-function method IncludeAdd headervar ?args? method generate-tcl-loader method generate-tcl-pre method generate-tcl-post method linktype method Ofile filename method project-static-packages method toolset-include-directory method target method ?args? method project-compile-products method generate-loader-module method project-compile-products method linker-products configdict method initialize variable make_object method _MorphPatterns method add ?args? method install-headers ?args? method make {} _preamble method make {} pkginfo method make {} objects method make {} object name method make {} reset method make {} trigger ?args? method make {} depends ?args? method make {} filename name method make {} target name Info body method make {} todo method make {} do method child which method generate-c method generate-h method generate-loader method initialize method implement path method linktype method _MorphPatterns method constructor ?args? method add_object object method add_project pkg info ?oodefine ? method add_tool pkg info ?oodefine ? method build-tclcore method child which method linktype method project pkg ?args? method tclcore method tkcore method tool pkg ?args? method clean PATH method project-compile-products method go method generate-decls pkgname path method implement path method generate-make path method linktype method package-ifneeded ?args? method shared_library ?filename ? method static_library ?filename ? method build-tclkit_main PROJECT PKG_OBJS method Collate_Source CWD method wrap PWD exename vfspath ?args? classmethod Sandbox object classmethod select object classmethod claim_option classmethod claim_object object classmethod claim_path path method scm_info method DistroMixIn method Sandbox method SrcDir method ScmTag method ScmClone method ScmUnpack method ScmUpdate method Unpack classmethod claim_object object classmethod claim_option classmethod claim_path path method ScmUnpack classmethod claim_object obj classmethod claim_option classmethod claim_path path method scm_info method ScmClone method ScmTag method ScmUnpack method ScmUpdate classmethod claim_object obj classmethod claim_option classmethod claim_path path method ScmTag method ScmUnpack method ScmUpdate method _MorphPatterns method BuildDir PWD method child which method compile method go method install ?args? method linktype method linker-products configdict method linker-external configdict method linker-extra configdict method env-bootstrap method env-exec method env-install method env-load method env-present method sources method update method unpack method env-bootstrap method env-present method linktype method env-bootstrap method env-install method env-present method install DEST method kettle path ?args? method install DEST method install DEST method env-bootstrap method env-install method env-present method install DEST method install-module DEST ?args? method env-bootstrap method env-install method install DEST method install-module DEST ?args? method clean method env-install method project-compile-products method ComputeInstall method go method linker-products configdict method project-static-packages method BuildDir PWD method compile method Configure method install DEST method install DEST method install DEST method env-bootstrap method env-present method env-install method go method linktype _________________________________________________________________________________________________
DESCRIPTION
The Practcl module is a tool for integrating large modules for C API Tcl code that requires custom Tcl types and TclOO objects. The concept with Practcl is that is a single file package that can assist any tcl based project with distribution, compilation, linking, VFS preparation, executable assembly, and installation. Practcl also allows one project to invoke the build system from another project, allowing complex projects such as a statically linked basekit to be assembled with relative ease. Practcl ships as a single file, and aside from a Tcl 8.6 interpreter, has no external dependencies. Making a practcl project
COMMANDS
proc practcl::cat fname Concatenate a file proc practcl::docstrip text Strip the global comments from tcl code. Used to prevent the documentation markup comments from clogging up files intended for distribution in machine readable format. proc putb ?map? text Append a line of text to a variable. Optionally apply a string mapping. proc Proc name arglist body Generate a proc if no command already exists by that name proc noop ?args? A command to do nothing. A handy way of negating an instruction without having to comment it completely out. It's also a handy attachment point for an object to be named later proc practcl::debug ?args? proc practcl::doexec ?args? Drop in a static copy of Tcl proc practcl::doexec_in path ?args? proc practcl::dotclexec ?args? proc practcl::domake path ?args? proc practcl::domake.tcl path ?args? proc practcl::fossil path ?args? proc practcl::fossil_status dir proc practcl::os proc practcl::mkzip exename barekit vfspath Build a zipfile. On tcl8.6 this invokes the native Zip implementation on older interpreters this invokes zip via exec proc practcl::sort_dict list Dictionary sort a key/value list. Needed because pre tcl8.6 does not have lsort -stride 2 proc practcl::local_os Returns a dictionary describing the local operating system. Fields return include: • download - Filesystem path where fossil repositories and source tarballs are downloaded for the current user • EXEEXT - The extension to give to executables. (i.e. .exe on windows) • fossil_mirror - A URI for a local network web server who acts as a fossil repository mirror • local_install - Filesystem path where packages for local consumption by the current user are installed • prefix - The prefix as given to the Tcl core/TEA for installation to local_install in ./configure • sandbox - The file location where this project unpacks external projects • TEACUP_PROFILE - The ActiveState/Teacup canonical name for this platform (i.e. win32-ix86 macosx10.5-i386-x86_84) • TEACUP_OS - The local operating system (windows, macosx, openbsd, etc). Gives the same answer as tcl.m4, except that macosx is given as macosx instead of Darwin. • TEA_PLATFORM - The platform returned by uname -s-uname -r (on Unix), or "windows" on Windows • TEACUP_ARCH - The processor architecture for the local os (i.e. ix86, x86_64) • TEACUP_ARCH - The processor architecture for the local os (i.e. ix86, x86_64) • teapot - Filesystem path where teapot package files are downloaded for the current user • userhome - File path to store localized preferences, cache download files, etc for the current user This command uses a combination of local checks with Exec, any tclConfig.sh file that is resident, autoconf data where already computed, and data gleaned from a file named practcl.rc in userhome. The location for userhome varies by platform and operating system: • Windows: ::env(LOCALAPPDATA)/Tcl • Macos: ~/Library/Application Support/Tcl • Other: ~/tcl proc practcl::config.tcl path A transparent call to ::practcl::read_configuration to preserve backward compadibility with older copies of Practcl proc practcl::read_configuration path Detect local platform. This command looks for data gleaned by autoconf or autosetup in the path specified, or perform its own logic tests if neither has been run. A file named config.site present in the location indicates that this project is cross compiling, and the data stored in that file is used for the compiler and linker. This command looks for information from the following files, in the following order: • config.tcl - A file generated by autoconf/configure in newer editions of TEA, encoded as a Tcl script. • config.site - A file containing cross compiler information, encoded as a SH script • ::env(VisualStudioVersion) - On Windows, and environmental value that indicates MS Visual Studio is installed This command returns a dictionary containing all of the data cleaned from the sources above. In the absence of any guidance this command returns the same output as ::practcl::local_os. In this mode, if the environmental variable VisualStudioVersion exists, this command will provide a template of fields that are appropriate for compiling on Windows under Microsoft Visual Studio. The USEMSVC flag in the dictionary is a boolean flag to indicate if this is indeed the case. proc practcl::tcllib_require pkg ?args? Try to load a package, and failing that retrieve tcllib proc practcl::platform::tcl_core_options os Return the string to pass to ./configure to compile the Tcl core for the given OS. • windows: --with-tzdata --with-encoding utf-8 • macosx: --enable-corefoundation=yes --enable-framework=no --with-tzdata --with-encoding utf-8 • other: --with-tzdata --with-encoding utf-8 proc practcl::platform::tk_core_options os proc practcl::read_rc_file filename ?localdat ? Read a stylized key/value list stored in a file proc practcl::read_sh_subst line info Converts a XXX.sh file into a series of Tcl variables proc practcl::read_sh_file filename ?localdat ? proc practcl::read_Config.sh filename A simpler form of read_sh_file tailored to pulling data from (tcl|tk)Config.sh proc practcl::read_Makefile filename A simpler form of read_sh_file tailored to pulling data from a Makefile proc practcl::cputs varname ?args? Append arguments to a buffer The command works like puts in that each call will also insert a line feed. Unlike puts, blank links in the interstitial are suppressed proc practcl::tcl_to_c body proc practcl::_tagblock text ?style tcl? ?note ? proc practcl::de_shell data proc practcl::grep pattern ?files ? Search for the pattern pattern amongst $files proc practcl::file_lexnormalize sp proc practcl::file_relative base dst Calculate a relative path between base and dst Example: ::practcl::file_relative ~/build/tcl/unix ~/build/tcl/library > ../library proc practcl::findByPattern basedir patterns proc practcl::log fname comment Record an event in the practcl log proc practcl::_pkgindex_simpleIndex path proc practcl::_pkgindex_directory path Return true if the pkgindex file contains any statement other than "package ifneeded" and/or if any package ifneeded loads a DLL proc practcl::_pkgindex_path_subdir path Helper function for ::practcl::pkgindex_path proc practcl::pkgindex_path ?args? Index all paths given as though they will end up in the same virtual file system proc practcl::installDir d1 d2 Delete the contents of d2, and then recusively Ccopy the contents of d1 to d2. proc practcl::copyDir d1 d2 ?toplevel 1? Recursively copy the contents of d1 to d2 proc practcl::buildModule modpath proc practcl::installModule modpath DEST Install a module from MODPATH to the directory specified. dpath is assumed to be the fully qualified path where module is to be placed. Any existing files will be deleted at that path. If the path is symlink the process will return with no error and no action. If the module has contents in the build/ directory that are newer than the .tcl files in the module source directory, and a build/build.tcl file exists, the build/build.tcl file is run. If the source directory includes a file named index.tcl, the directory is assumed to be in the tao style of modules, and the entire directory (and all subdirectories) are copied verbatim. If no index.tcl file is present, all .tcl files are copied from the module source directory, and a pkgIndex.tcl file is generated if non yet exists. I a folder named htdocs exists in the source directory, that directory is copied verbatim to the destination. proc practcl::trigger ?args? Trigger build targets, and recompute dependencies Internals: ::practcl::LOCAL make trigger {*}$args foreach {name obj} [::practcl::LOCAL make objects] { set ::make($name) [$obj do] } proc practcl::depends ?args? Calculate if a dependency for any of the arguments needs to be fulfilled or rebuilt. Internals: ::practcl::LOCAL make depends {*}$args proc practcl::target name info ?action ? Declare a build product. This proc is just a shorthand for ::practcl::LOCAL make task $name $info $action Registering a build product with this command will create an entry in the global array, and populate a value in the global array. Internals: set obj [::practcl::LOCAL make task $name $info $action] set ::make($name) 0 set filename [$obj define get filename] if {$filename ne {}} { set ::target($name) $filename }
CLASSES
CLASS PRACTCL::DOCTOOL { set authors { {John Doe} {jdoe@illustrious.edu} {Tom RichardHarry} {tomdickharry@illustrius.edu} } # Create the object ::practcl::doctool create AutoDoc set fout [open [file join $moddir module.tcl] w] foreach file [glob [file join $srcdir *.tcl]] { set content [::practcl::cat [file join $srcdir $file]] # Scan the file AutoDoc scan_text $content # Strip the comments from the distribution puts $fout [::practcl::docstrip $content] } # Write out the manual page set manout [open [file join $moddir module.man] w] dict set args header [string map $modmap [::practcl::cat [file join $srcdir manual.txt]]] dict set args footer [string map $modmap [::practcl::cat [file join $srcdir footer.txt]]] dict set args authors $authors puts $manout [AutoDoc manpage {*}$args] close $manout } Tool for build scripts to dynamically generate manual files from comments in source code files Methods method constructor method argspec argspec Process an argument list into an informational dict. This method also understands non-positional arguments expressed in the notation of Tip 471 https://core.tcl- lang.org/tips/doc/trunk/tip/479.md. The output will be a dictionary of all of the fields and whether the fields are positional, mandatory, and whether they have a default value. Example: my argspec {a b {c 10}} > a {positional 1 mandatory 1} b {positional 1 mandatory 1} c {positional 1 mandatory 0 default 10} method comment block Convert a block of comments into an informational dictionary. If lines in the comment start with a single word ending in a colon, all subsequent lines are appended to a dictionary field of that name. If no fields are given, all of the text is appended to the description field. Example: my comment {Does something cool} > description {Does something cool} my comment { title : Something really cool author : Sean Woods author : John Doe description : This does something really cool! } > description {This does something really cool!} title {Something really cool} author {Sean Woods John Doe} method keyword.Annotation resultvar commentblock type name body method keyword.Class resultvar commentblock name body Process an oo::objdefine call that modifies the class object itself method keyword.class resultvar commentblock name body Process an oo::define, clay::define, etc statement. method keyword.Class_Method resultvar commentblock name ?args? Process a statement for a clay style class method method keyword.method resultvar commentblock name ?args? Process a statement for a tcloo style object method method keyword.proc commentblock name argspec Process a proc statement method reset Reset the state of the object and its embedded coroutine method Main Main body of the embedded coroutine for the object method section.method keyword method minfo Generate the manual page text for a method or proc method section.annotation type name iinfo method section.class class_name class_info Generate the manual page text for a class method section.command procinfo Generate the manual page text for the commands section method manpage ?header value? ?footer value? ?authors list? Generate the manual page. Returns the completed text suitable for saving in .man file. The header argument is a block of doctools text to go in before the machine generated section. footer is a block of doctools text to go in after the machine generated section. authors is a list of individual authors and emails in the form of AUTHOR EMAIL ?AUTHOR EMAIL?... method scan_text text Scan a block of text method scan_file filename Scan a file of text CLASS PRACTCL::METACLASS The metaclass for all practcl objects Methods method _MorphPatterns method define submethod ?args? method graft ?args? method initialize method link command ?args? method morph classname method script script method select method source filename CLASS PRACTCL::TOOLSET Ancestor-less class intended to be a mixin which defines a family of build related behaviors that are modified when targetting either gcc or msvc Class Methods classmethod select object Perform the selection for the toolset mixin Methods method config.sh find or fake a key/value list describing this project method BuildDir PWD Compute the location where the product will be built method MakeDir srcdir Return where the Makefile is located relative to srcdir. For this implementation the MakeDir is always srcdir. method read_configuration Read information about the build process for this package. For this implementation, data is sought in the following locations in the following order: config.tcl (generated by practcl.) PKGConfig.sh. The Makefile If the Makefile needs to be consulted, but does not exist, the Configure method is invoked method build-cflags PROJECT DEFS namevar versionvar defsvar method DEFS This method populates 4 variables: name - The name of the package version - The version of the package defs - C flags passed to the compiler includedir - A list of paths to feed to the compiler for finding headers method critcl ?args? Invoke critcl in an external process CLASS PRACTCL::TOOLSET.GCC ancestors: practcl::toolset Methods method Autoconf method BuildDir PWD method ConfigureOpts method MakeDir srcdir Detect what directory contains the Makefile template method make {} autodetect method make {} clean method make {} compile method make {} install DEST method build-compile-sources PROJECT COMPILE CPPCOMPILE INCLUDES method build-Makefile path PROJECT method build-library outfile PROJECT Produce a static or dynamic library method build-tclsh outfile PROJECT ?path auto? Produce a static executable CLASS PRACTCL::TOOLSET.MSVC ancestors: practcl::toolset Methods method BuildDir PWD MSVC always builds in the source directory method make {} autodetect Do nothing method make {} clean method make {} compile method make {} install DEST method MakeDir srcdir Detect what directory contains the Makefile template method NmakeOpts CLASS PRACTCL::MAKE_OBJ ancestors: practcl::metaclass A build deliverable object. Normally an object file, header, or tcl script which must be compiled or generated in some way Methods method constructor module_object name info ?action_body ? method do method check method output method reset method triggers CLASS PRACTCL::OBJECT ancestors: practcl::metaclass A generic Practcl object Methods method constructor parent ?args? method child method method go CLASS PRACTCL::DYNAMIC Dynamic blocks do not generate their own .c files, instead the contribute to the amalgamation of the main library file Methods method cstructure name definition ?argdat ? Parser functions method include header method include_dir ?args? method include_directory ?args? method c_header body method c_code body method c_function header body ?info ? method c_tcloomethod name body ?arginfo ? method cmethod name body ?arginfo ? Alias to classic name method c_tclproc_nspace nspace method c_tclcmd name body ?arginfo ? method c_tclproc_raw name body ?arginfo ? Alias to classic name method tcltype name argdat method project-compile-products Module interactions method implement path method initialize Practcl internals method linktype method generate-cfile-constant method generate-cfile-header method generate-cfile-tclapi Generate code that provides implements Tcl API calls method generate-loader-module Generate code that runs when the package/module is initialized into the interpreter method Collate_Source CWD method select Once an object marks itself as some flavor of dynamic, stop trying to morph it into something else CLASS PRACTCL::PRODUCT A deliverable for the build system Class Methods classmethod select object Methods method code section body method Collate_Source CWD method project-compile-products method generate-debug ?spaces ? method generate-cfile-constant method generate-cfile-public-structure Populate const static data structures method generate-cfile-header method generate-cfile-global method generate-cfile-private-typedef method generate-cfile-private-structure method generate-cfile-functions Generate code that provides subroutines called by Tcl API methods method generate-cfile-tclapi Generate code that provides implements Tcl API calls method generate-hfile-public-define method generate-hfile-public-macro method generate-hfile-public-typedef method generate-hfile-public-structure method generate-hfile-public-headers method generate-hfile-public-function method generate-hfile-public-includes method generate-hfile-public-verbatim method generate-loader-external method generate-loader-module method generate-stub-function method IncludeAdd headervar ?args? method generate-tcl-loader method generate-tcl-pre This methods generates any Tcl script file which is required to pre-initialize the C library method generate-tcl-post method linktype method Ofile filename method project-static-packages Methods called by the master project method toolset-include-directory Methods called by the toolset method target method ?args? CLASS PRACTCL::PRODUCT.CHEADER ancestors: practcl::product A product which generated from a C header file. Which is to say, nothing. Methods method project-compile-products method generate-loader-module CLASS PRACTCL::PRODUCT.CSOURCE ancestors: practcl::product A product which generated from a C source file. Normally an object (.o) file. Methods method project-compile-products CLASS PRACTCL::PRODUCT.CLIBRARY ancestors: practcl::product A product which is generated from a compiled C library. Usually a .a or a .dylib file, but in complex cases may actually just be a conduit for one project to integrate the source code of another Methods method linker-products configdict CLASS PRACTCL::PRODUCT.DYNAMIC ancestors: practcl::dynamic practcl::product A product which is generated from C code that itself is generated by practcl or some other means. This C file may or may not produce its own .o file, depending on whether it is eligible to become part of an amalgamation Methods method initialize CLASS PRACTCL::PRODUCT.CRITCL ancestors: practcl::dynamic practcl::product A binary product produced by critcl. Note: The implementation is not written yet, this class does nothing. CLASS PRACTCL::MODULE ancestors: practcl::object practcl::product.dynamic In the end, all C code must be loaded into a module This will either be a dynamically loaded library implementing a tcl extension, or a compiled in segment of a custom shell/app Variable variable make_object Methods method _MorphPatterns method add ?args? method install-headers ?args? method make {} _preamble method make {} pkginfo method make {} objects Return a dictionary of all handles and associated objects method make {} object name Return the object associated with handle name method make {} reset Reset all deputy objects method make {} trigger ?args? Exercise the triggers method for all handles listed method make {} depends ?args? Exercise the check method for all handles listed method make {} filename name Return the file name of the build product for the listed handle method make {} target name Info body method make {} todo Return a list of handles for object which return true for the do method method make {} do For each target exercise the action specified in the action definition if the do method returns true method child which method generate-c This methods generates the contents of an amalgamated .c file which implements the loader for a batch of tools method generate-h This methods generates the contents of an amalgamated .h file which describes the public API of this module method generate-loader method initialize method implement path method linktype CLASS PRACTCL::PROJECT ancestors: practcl::module A toplevel project that is a collection of other projects Methods method _MorphPatterns method constructor ?args? method add_object object method add_project pkg info ?oodefine ? method add_tool pkg info ?oodefine ? method build-tclcore Compile the Tcl core. If the define tk is true, compile the Tk core as well method child which method linktype method project pkg ?args? Exercise the methods of a sub-object method tclcore method tkcore method tool pkg ?args? CLASS PRACTCL::LIBRARY ancestors: practcl::project A toplevel project that produces a library Methods method clean PATH method project-compile-products method go method generate-decls pkgname path method implement path method generate-make path Backward compadible call method linktype method package-ifneeded ?args? Create a "package ifneeded" Args are a list of aliases for which this package will answer to method shared_library ?filename ? method static_library ?filename ? CLASS PRACTCL::TCLKIT ancestors: practcl::library A toplevel project that produces a self-contained executable Methods method build-tclkit_main PROJECT PKG_OBJS method Collate_Source CWD method wrap PWD exename vfspath ?args? Wrap an executable CLASS PRACTCL::DISTRIBUTION Standalone class to manage code distribution This class is intended to be mixed into another class (Thus the lack of ancestors) Class Methods classmethod Sandbox object classmethod select object classmethod claim_option classmethod claim_object object classmethod claim_path path Methods method scm_info method DistroMixIn method Sandbox method SrcDir method ScmTag method ScmClone method ScmUnpack method ScmUpdate method Unpack CLASS PRACTCL::DISTRIBUTION.SNAPSHOT ancestors: practcl::distribution A file distribution from zip, tarball, or other non-scm archive format Class Methods classmethod claim_object object classmethod claim_option classmethod claim_path path Methods method ScmUnpack CLASS PRACTCL::DISTRIBUTION.FOSSIL ancestors: practcl::distribution A file distribution based on fossil Class Methods classmethod claim_object obj Check for markers in the metadata classmethod claim_option classmethod claim_path path Check for markers in the source root Methods method scm_info method ScmClone Clone the source method ScmTag method ScmUnpack method ScmUpdate CLASS PRACTCL::DISTRIBUTION.GIT ancestors: practcl::distribution A file distribution based on git Class Methods classmethod claim_object obj classmethod claim_option classmethod claim_path path Methods method ScmTag method ScmUnpack method ScmUpdate CLASS PRACTCL::SUBPROJECT ancestors: practcl::module A subordinate project Methods method _MorphPatterns method BuildDir PWD method child which method compile method go method install ?args? Install project into the local build system method linktype method linker-products configdict method linker-external configdict method linker-extra configdict method env-bootstrap Methods for packages/tools that can be downloaded possibly built and used internally by this Practcl process Load the facility into the interpreter method env-exec Return a file path that exec can call method env-install Install the tool into the local environment method env-load Do whatever is necessary to get the tool into the local environment method env-present Check if tool is available for load/already loaded method sources method update method unpack CLASS PRACTCL::SUBPROJECT.SOURCE ancestors: practcl::subproject practcl::library A project which the kit compiles and integrates the source for itself Methods method env-bootstrap method env-present method linktype CLASS PRACTCL::SUBPROJECT.TEAPOT ancestors: practcl::subproject a copy from the teapot Methods method env-bootstrap method env-install method env-present method install DEST CLASS PRACTCL::SUBPROJECT.KETTLE ancestors: practcl::subproject Methods method kettle path ?args? method install DEST CLASS PRACTCL::SUBPROJECT.CRITCL ancestors: practcl::subproject Methods method install DEST CLASS PRACTCL::SUBPROJECT.SAK ancestors: practcl::subproject Methods method env-bootstrap method env-install method env-present method install DEST method install-module DEST ?args? CLASS PRACTCL::SUBPROJECT.PRACTCL ancestors: practcl::subproject Methods method env-bootstrap method env-install method install DEST method install-module DEST ?args? CLASS PRACTCL::SUBPROJECT.BINARY ancestors: practcl::subproject A subordinate binary package Methods method clean method env-install method project-compile-products method ComputeInstall method go method linker-products configdict method project-static-packages method BuildDir PWD method compile method Configure method install DEST CLASS PRACTCL::SUBPROJECT.TEA ancestors: practcl::subproject.binary A subordinate TEA based binary package CLASS PRACTCL::SUBPROJECT.LIBRARY ancestors: practcl::subproject.binary practcl::library A subordinate C library built by this project Methods method install DEST CLASS PRACTCL::SUBPROJECT.EXTERNAL ancestors: practcl::subproject.binary A subordinate external C library Methods method install DEST CLASS PRACTCL::SUBPROJECT.CORE ancestors: practcl::subproject.binary Methods method env-bootstrap method env-present method env-install method go method linktype
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category practcl of the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please also report any ideas for enhancements you may have for either package and/or documentation. When proposing code changes, please provide unified diffs, i.e the output of diff -u. Note further that attachments are strongly preferred over inlined patches. Attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.
KEYWORDS
practcl
CATEGORY
TclOO
COPYRIGHT
Copyright (c) 2016-2018 Sean Woods <yoda@etoyoc.com>