mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-08 12:20:15 +00:00
68 lines
2.3 KiB
Tcl
68 lines
2.3 KiB
Tcl
# -*- tcl -*-
|
|
# Tcl package index file, version 1.1
|
|
#
|
|
|
|
if {![package vsatisfies [package provide Tcl] 8.4]} {
|
|
# Pre-8.4 Tcl interps we dont support at all. Bye!
|
|
# 9.0+ Tcl interps are only supported on 32-bit platforms.
|
|
if {![package vsatisfies [package provide Tcl] 9.0]
|
|
|| ($::tcl_platform(pointerSize) != 4)} {
|
|
return
|
|
}
|
|
}
|
|
|
|
# All Tcl 8.4+ interps can [load] Thread 2.8.2
|
|
#
|
|
# 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 Thread 2.8.2 [list load [file join $dir thread282.dll]]
|
|
|
|
# package Ttrace uses some support machinery.
|
|
|
|
# In Tcl 8.4 interps we use some older interfaces
|
|
if {![package vsatisfies [package provide Tcl] 8.5]} {
|
|
package ifneeded Ttrace 2.8.2 "
|
|
[list proc thread_source {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]
|
|
}
|
|
if {[namespace which ::ttrace::update] ne ""} {
|
|
::ttrace::update
|
|
}
|
|
}]
|
|
[list thread_source $dir]
|
|
[list rename thread_source {}]"
|
|
return
|
|
}
|
|
|
|
# In Tcl 8.5+ interps; use [::apply]
|
|
|
|
package ifneeded Ttrace 2.8.2 [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]
|
|
}
|
|
if {[namespace which ::ttrace::update] ne ""} {
|
|
::ttrace::update
|
|
}
|
|
}} $dir]
|
|
|
|
|
|
|