summaryrefslogtreecommitdiffstats
path: root/tclxml/pkgIndex.tcl.in
blob: dc90a23e6d813472a769f4ab3792adcafb8ba394 (plain)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# TclXML combo package index file - handcrafted
#
# $Id: pkgIndex.tcl.in,v 1.1.1.1 2009/01/16 22:11:49 joye Exp $

namespace eval ::xml {
    variable _init 0
}
namespace eval ::xml::libxml2 {
    variable _init 0
}
namespace eval ::dom {
    variable _init 0
}
namespace eval ::dom::libxml2 {
    variable _init 0
}
namespace eval ::xslt {
    variable _init 0
}

namespace eval ::xml {
    variable pkginit

    if {![info exists pkginit]} {
	set pkginit 0
    }

    proc pkgload {dir {binary 0}} {
	variable pkginit

	if {$pkginit} {return {}}

	namespace eval :: "
	    package require xmldefs @PACKAGE_VERSION@
	    package require xml::tcl @PACKAGE_VERSION@
	    if {\[catch {load \[file join $dir @PKG_LIB_FILE@\] Tclxml}\]} {
	        # Mac OS X frameworks are different
	        if {\[catch {load \[file join $dir .. .. Tclxml\] Tclxml}\]} {
		    # Unable to load binary implmentation,
		    # just use pure-Tcl implmentation instead
		    if {$binary} {
			return -code error \"unable to load shared library\"
		    }
	        } else {
		    set ::xml::libxml2::_init 1
		    set ::dom::libxml2::_init 1
		    set ::xslt::_init 1
		    source \[file join $dir tcldom-libxml2.tcl\]
		    source \[file join $dir tclxslt-libxslt.tcl\]
	        }
	    } else {
		set ::xml::libxml2::_init 1
		set ::dom::libxml2::_init 1
		set ::xslt::_init 1
		source \[file join $dir tcldom-libxml2.tcl\]
		source \[file join $dir tclxslt-libxslt.tcl\]
	    }
	    package require xml::tclparser @PACKAGE_VERSION@
	    package provide tclparser @PACKAGE_VERSION@
	    package provide xml::libxml2 @PACKAGE_VERSION@
	    package provide xml @PACKAGE_VERSION@
	    package provide dom @PACKAGE_VERSION@
	    package provide dom::libxml2 @PACKAGE_VERSION@
	    package provide xslt @PACKAGE_VERSION@
	    package provide xslt::libxslt @PACKAGE_VERSION@

	    set pkginit 1
	"
    }
}

package ifneeded xml::tcl     @PACKAGE_VERSION@ [list source [file join $dir xml__tcl.tcl]]
package ifneeded sgmlparser   1.1       [list source [file join $dir sgmlparser.tcl]]
package ifneeded xpath        1.0       [list source [file join $dir xpath.tcl]]
package ifneeded xmldep       1.0       [list source [file join $dir xmldep.tcl]]

# Requesting a specific package means we want it to be the default parser class.

package ifneeded xml::libxml2 @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 1
    ::xml::parser default libxml2
"

# tclparser works with either xml::c or xml::tcl
package ifneeded tclparser @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 0
    ::xml::parser default tclparser
    package provide tclparser @PACKAGE_VERSION@
"

# use tcl only (mainly for testing)
package ifneeded puretclparser @PACKAGE_VERSION@ "
    package require xml::tcl       @PACKAGE_VERSION@
    package require xmldefs
    package require xml::tclparser @PACKAGE_VERSION@
    package provide puretclparser  @PACKAGE_VERSION@
"

# Requesting the generic package leaves the choice of default parser automatic

package ifneeded xml @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 0
"
package ifneeded dom @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 0
"
package ifneeded dom::libxml2 @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 1
"
package ifneeded xslt @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 1
"
package ifneeded xslt::libxslt @PACKAGE_VERSION@ "
    ::xml::pkgload $dir 1
"

package ifneeded xmlswitch @PACKAGE_VERSION@ [list source [file join $dir xmlswitch.tcl]]

package ifneeded xslt::cache @PACKAGE_VERSION@ [list source [file join $dir xsltcache.tcl]]
package ifneeded xslt::utilities @PACKAGE_VERSION@ [list source [file join $dir utilities.tcl]]
package ifneeded xslt::process 1.1 [list source [file join $dir process.tcl]]
package ifneeded xslt::resources 1.3 [list source [file join $dir resources.tcl]]

if {[info tclversion] <= 8.0} {
    package ifneeded sgml           1.9       [list source [file join $dir sgml-8.0.tcl]]
    package ifneeded xmldefs        @PACKAGE_VERSION@ [list source [file join $dir xml-8.0.tcl]]
    package ifneeded xml::tclparser @PACKAGE_VERSION@ [list source [file join $dir tclparser-8.0.tcl]]
} else {
    package ifneeded sgml           1.9       [list source [file join $dir sgml-8.1.tcl]]
    package ifneeded xmldefs        @PACKAGE_VERSION@ [list source [file join $dir xml-8.1.tcl]]
    package ifneeded xml::tclparser @PACKAGE_VERSION@ [list source [file join $dir tclparser-8.1.tcl]]
}