-
Notifications
You must be signed in to change notification settings - Fork 14
/
pkgIndex.tcl.in
executable file
·54 lines (44 loc) · 2.08 KB
/
pkgIndex.tcl.in
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
# -*- tcl -*-
# Tcl package index file, version 1.1
#
# Tcl 8.7 interps are only supported on 32-bit platforms.
# Lower than that is never supported. Bye!
if {![package vsatisfies [package provide Tcl] 9.0]
&& ((![package vsatisfies [package provide Tcl] 8.7])
|| ($::tcl_platform(pointerSize)!=4))} {
return
}
# All Tcl 8.7+ interps can [load] thread @PACKAGE_VERSION@
#
# For interps that are not thread-enabled, we still call [package ifneeded].
# This is contrary to the usual convention, but is a good idea because we
# cannot imagine any other version of thread that might succeed in a
# thread-disabled interp. There's nothing to gain by yielding to other
# competing callers of [package ifneeded Thread]. On the other hand,
# deferring the error has the advantage that a script calling
# [package require Thread] in a thread-disabled interp gets an error message
# about a thread-disabled interp, instead of the message
# "can't find package thread".
package ifneeded [string tolower @PACKAGE_NAME@] @PACKAGE_VERSION@ \
[list load [file join $dir @PKG_LIB_FILE@] [string totitle @PACKAGE_NAME@]]
package ifneeded [string totitle @PACKAGE_NAME@] @PACKAGE_VERSION@ \
[list package require -exact [string tolower @PACKAGE_NAME@] @PACKAGE_VERSION@]
# package ttrace uses some support machinery.
# In Tcl 8.7+ interps; use [::apply]
package ifneeded ttrace @PACKAGE_VERSION@ [list ::apply {{dir} {
if {[info exists ::env(TCL_THREAD_LIBRARY)] &&
[file readable $::env(TCL_THREAD_LIBRARY)/ttrace.tcl]} {
source $::env(TCL_THREAD_LIBRARY)/ttrace.tcl
} elseif {[file readable [file join $dir .. lib ttrace.tcl]]} {
source [file join $dir .. lib ttrace.tcl]
} elseif {[file readable [file join $dir ttrace.tcl]]} {
source [file join $dir ttrace.tcl]
} elseif {![catch {zipfs mount //zipfs:/lib/thread [file join $dir @PKG_LIB_FILE@]}]} {
source //zipfs:/lib/thread/thread_library/ttrace.tcl
}
if {[namespace which ::ttrace::update] ne ""} {
::ttrace::update
}
}} $dir]
package ifneeded Ttrace @PACKAGE_VERSION@ \
[list package require -exact ttrace @PACKAGE_VERSION@]