libxslt-ruby 1.0.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +81 -0
- data/LICENSE +21 -0
- data/README +164 -0
- data/Rakefile +74 -0
- data/ext/libxslt/extconf.h +8 -0
- data/ext/libxslt/extconf.rb +146 -0
- data/ext/libxslt/libxslt.c +66 -0
- data/ext/libxslt/libxslt.h +31 -0
- data/ext/libxslt/ruby_xslt_stylesheet.c +277 -0
- data/ext/libxslt/ruby_xslt_stylesheet.h +16 -0
- data/ext/libxslt/version.h +5 -0
- data/ext/vc/libxslt_ruby.sln +26 -0
- data/ext/vc/libxslt_ruby.vcxproj +110 -0
- data/lib/1.8/libxslt_ruby.so +0 -0
- data/lib/1.9/libxslt_ruby.so +0 -0
- data/lib/libs/libexslt-0.dll +0 -0
- data/lib/libs/libxslt-1.dll +0 -0
- data/lib/libxslt.rb +19 -0
- data/lib/libxslt/deprecated.rb +68 -0
- data/lib/xslt.rb +15 -0
- data/libxslt-ruby.gemspec +49 -0
- data/setup.rb +1585 -0
- data/test/files/commentary.dtd +34 -0
- data/test/files/fuzface.xml +154 -0
- data/test/files/fuzface.xsl +4 -0
- data/test/files/params.xml +2 -0
- data/test/files/params.xsl +11 -0
- data/test/files/ramblings.xsl +46 -0
- data/test/test_deprecated.rb +98 -0
- data/test/test_helper.rb +12 -0
- data/test/test_libxslt.rb +22 -0
- data/test/test_stylesheet.rb +106 -0
- data/test/test_suite.rb +10 -0
- data/test/text.xml +134 -0
- metadata +100 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
/* $Id: libxslt.c 42 2007-12-07 06:09:35Z transami $ */
|
2
|
+
|
3
|
+
/* Please see the LICENSE file for copyright and distribution information */
|
4
|
+
|
5
|
+
#include "libxslt.h"
|
6
|
+
#include "libxml/xmlversion.h"
|
7
|
+
|
8
|
+
VALUE cLibXSLT;
|
9
|
+
VALUE cXSLT;
|
10
|
+
VALUE eXSLTError;
|
11
|
+
|
12
|
+
/*
|
13
|
+
* Document-class: LibXSLT::XSLT
|
14
|
+
*
|
15
|
+
* The libxslt gem provides Ruby language bindings for GNOME's Libxslt
|
16
|
+
* toolkit. It is free software, released under the MIT License.
|
17
|
+
*
|
18
|
+
* Using the bindings is straightforward:
|
19
|
+
*
|
20
|
+
* stylesheet_doc = XML::Document.file('stylesheet_file')
|
21
|
+
* stylesheet = XSLT::Stylesheet.new(stylesheet_doc)
|
22
|
+
*
|
23
|
+
* xml_doc = XML::Document.file('xml_file')
|
24
|
+
* result = stylesheet.apply(xml_doc)
|
25
|
+
*
|
26
|
+
*
|
27
|
+
*/
|
28
|
+
|
29
|
+
#ifdef RDOC_NEVER_DEFINED
|
30
|
+
cLibXSLT = rb_define_module("XSLT");
|
31
|
+
#endif
|
32
|
+
|
33
|
+
|
34
|
+
#if defined(_WIN32)
|
35
|
+
__declspec(dllexport)
|
36
|
+
#endif
|
37
|
+
|
38
|
+
void
|
39
|
+
Init_libxslt_ruby(void) {
|
40
|
+
LIBXML_TEST_VERSION;
|
41
|
+
|
42
|
+
cLibXSLT = rb_define_module("LibXSLT");
|
43
|
+
cXSLT = rb_define_module_under(cLibXSLT, "XSLT");
|
44
|
+
|
45
|
+
rb_define_const(cXSLT, "MAX_DEPTH", INT2NUM(xsltMaxDepth));
|
46
|
+
rb_define_const(cXSLT, "MAX_SORT", INT2NUM(XSLT_MAX_SORT));
|
47
|
+
rb_define_const(cXSLT, "ENGINE_VERSION", rb_str_new2(xsltEngineVersion));
|
48
|
+
rb_define_const(cXSLT, "LIBXSLT_VERSION", INT2NUM(xsltLibxsltVersion));
|
49
|
+
rb_define_const(cXSLT, "LIBXML_VERSION", INT2NUM(xsltLibxmlVersion));
|
50
|
+
rb_define_const(cXSLT, "XSLT_NAMESPACE", rb_str_new2((const char*)XSLT_NAMESPACE));
|
51
|
+
rb_define_const(cXSLT, "DEFAULT_VENDOR", rb_str_new2(XSLT_DEFAULT_VENDOR));
|
52
|
+
rb_define_const(cXSLT, "DEFAULT_VERSION", rb_str_new2(XSLT_DEFAULT_VERSION));
|
53
|
+
rb_define_const(cXSLT, "DEFAULT_URL", rb_str_new2(XSLT_DEFAULT_URL));
|
54
|
+
rb_define_const(cXSLT, "NAMESPACE_LIBXSLT", rb_str_new2((const char*)XSLT_LIBXSLT_NAMESPACE));
|
55
|
+
rb_define_const(cXSLT, "NAMESPACE_NORM_SAXON", rb_str_new2((const char*)XSLT_NORM_SAXON_NAMESPACE));
|
56
|
+
rb_define_const(cXSLT, "NAMESPACE_SAXON", rb_str_new2((const char*)XSLT_SAXON_NAMESPACE));
|
57
|
+
rb_define_const(cXSLT, "NAMESPACE_XT", rb_str_new2((const char*)XSLT_XT_NAMESPACE));
|
58
|
+
rb_define_const(cXSLT, "NAMESPACE_XALAN", rb_str_new2((const char*)XSLT_XALAN_NAMESPACE));
|
59
|
+
|
60
|
+
eXSLTError = rb_define_class_under(cLibXSLT, "XSLTError", rb_eRuntimeError);
|
61
|
+
|
62
|
+
ruby_init_xslt_stylesheet();
|
63
|
+
|
64
|
+
/* Now load exslt. */
|
65
|
+
exsltRegisterAll();
|
66
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/* $Id: libxslt.h 43 2007-12-07 12:38:59Z transami $ */
|
2
|
+
|
3
|
+
/* Please see the LICENSE file for copyright and distribution information */
|
4
|
+
|
5
|
+
#ifndef __RUBY_LIBXSLT_H__
|
6
|
+
#define __RUBY_LIBXSLT_H__
|
7
|
+
|
8
|
+
#include <ruby.h>
|
9
|
+
#include <rubyio.h>
|
10
|
+
#include <libxml/parser.h>
|
11
|
+
#include <libxml/debugXML.h>
|
12
|
+
#include <libxslt/extra.h>
|
13
|
+
#include <libxslt/xslt.h>
|
14
|
+
#include <libxslt/xsltInternals.h>
|
15
|
+
#include <libxslt/transform.h>
|
16
|
+
#include <libxslt/xsltutils.h>
|
17
|
+
#include <libexslt/exslt.h>
|
18
|
+
|
19
|
+
#include "ruby_xslt_stylesheet.h"
|
20
|
+
|
21
|
+
#include "version.h"
|
22
|
+
|
23
|
+
/*#if ((RUBY_LIBXML_VER_MAJ != RUBY_LIBXSLT_VER_MAJ) || (RUBY_LIBXML_VER_MIN != RUBY_LIBXSLT_VER_MIN))
|
24
|
+
#error "Incompatible LibXML-Ruby headers - please install same major/micro version"
|
25
|
+
#endif*/
|
26
|
+
|
27
|
+
extern VALUE cLibXSLT;
|
28
|
+
extern VALUE cXSLT;
|
29
|
+
extern VALUE eXSLTError;
|
30
|
+
|
31
|
+
#endif
|
@@ -0,0 +1,277 @@
|
|
1
|
+
/* $Id: ruby_xslt_stylesheet.c 42 2007-12-07 06:09:35Z transami $ */
|
2
|
+
|
3
|
+
/* See the LICENSE file for copyright and distribution information. */
|
4
|
+
|
5
|
+
#include "libxslt.h"
|
6
|
+
#include "ruby_xslt_stylesheet.h"
|
7
|
+
|
8
|
+
/*
|
9
|
+
* Document-class: LibXSLT::XSLT::Stylesheet
|
10
|
+
*
|
11
|
+
* The XSLT::Stylesheet represents a XSL stylesheet that
|
12
|
+
* can be used to transform an XML document. For usage information
|
13
|
+
* refer to XSLT::Stylesheet#apply
|
14
|
+
*
|
15
|
+
*/
|
16
|
+
|
17
|
+
VALUE cXSLTStylesheet;
|
18
|
+
|
19
|
+
static VALUE
|
20
|
+
ruby_xslt_stylesheet_document_klass() {
|
21
|
+
VALUE mXML = rb_const_get(rb_cObject, rb_intern("XML"));
|
22
|
+
return rb_const_get(mXML, rb_intern("Document"));
|
23
|
+
}
|
24
|
+
|
25
|
+
void
|
26
|
+
ruby_xslt_stylesheet_free(xsltStylesheetPtr xstylesheet) {
|
27
|
+
xsltFreeStylesheet(xstylesheet);
|
28
|
+
}
|
29
|
+
|
30
|
+
static VALUE
|
31
|
+
ruby_xslt_stylesheet_alloc(VALUE klass) {
|
32
|
+
return Data_Wrap_Struct(cXSLTStylesheet,
|
33
|
+
NULL, ruby_xslt_stylesheet_free,
|
34
|
+
NULL);
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
/* call-seq:
|
39
|
+
* XSLT::Stylesheet.new(document) -> XSLT::Stylesheet
|
40
|
+
*
|
41
|
+
* Creates a new XSLT stylesheet based on the specified document.
|
42
|
+
* For memory management reasons, a copy of the specified document
|
43
|
+
* will be made, so its best to create a single copy of a stylesheet
|
44
|
+
* and use it multiple times.
|
45
|
+
*
|
46
|
+
* stylesheet_doc = XML::Document.file('stylesheet_file')
|
47
|
+
* stylesheet = XSLT::Stylesheet.new(stylesheet_doc)
|
48
|
+
*
|
49
|
+
*/
|
50
|
+
static VALUE
|
51
|
+
ruby_xslt_stylesheet_initialize(VALUE self, VALUE document) {
|
52
|
+
xmlDocPtr xdoc;
|
53
|
+
xmlDocPtr xcopy;
|
54
|
+
xsltStylesheetPtr xstylesheet;
|
55
|
+
|
56
|
+
if (!rb_obj_is_kind_of(document, ruby_xslt_stylesheet_document_klass()))
|
57
|
+
rb_raise(rb_eTypeError, "Must pass in an XML::Document instance.");
|
58
|
+
|
59
|
+
/* NOTE!! Since the stylesheet own the specified document, the easiest
|
60
|
+
* thing to do from a memory standpoint is too copy it and not expose
|
61
|
+
* the copy to Ruby. The other solution is expose a memory management
|
62
|
+
* API on the document object for taking ownership of the document
|
63
|
+
* and specifying when it has been freed. Then the document class
|
64
|
+
* has to be updated to always check and see if the document is
|
65
|
+
* still valid. That's all doable, but seems like a pain, so
|
66
|
+
* just copy the document for now. */
|
67
|
+
Data_Get_Struct(document, xmlDoc, xdoc);
|
68
|
+
xcopy = xmlCopyDoc(xdoc, 1);
|
69
|
+
xstylesheet = xsltParseStylesheetDoc(xcopy);
|
70
|
+
xstylesheet->_private = (void *)self;
|
71
|
+
DATA_PTR(self) = xstylesheet;
|
72
|
+
|
73
|
+
/* Save a reference to the document as an attribute accessable to ruby*/
|
74
|
+
return self;
|
75
|
+
}
|
76
|
+
|
77
|
+
/* Helper method to convert Ruby params to C params */
|
78
|
+
char **
|
79
|
+
ruby_xslt_coerce_params(VALUE params) {
|
80
|
+
char** result;
|
81
|
+
size_t length;
|
82
|
+
size_t i;
|
83
|
+
|
84
|
+
length = RARRAY_LEN(params);
|
85
|
+
result = ALLOC_N(char *, length + 2);
|
86
|
+
|
87
|
+
for (i=0; i<length; i++) {
|
88
|
+
VALUE str = rb_String(RARRAY_PTR(params)[i]);
|
89
|
+
int strLen = RSTRING_LEN(str);
|
90
|
+
result[i] = ALLOC_N(char, strLen + 1);
|
91
|
+
memset(result[i], 0, strLen + 1);
|
92
|
+
strncpy(result[i], RSTRING_PTR(str), strLen);
|
93
|
+
}
|
94
|
+
|
95
|
+
/* Null terminate the array - need to empty elements */
|
96
|
+
result[i] = NULL;
|
97
|
+
result[i+1] = NULL;
|
98
|
+
|
99
|
+
return result;
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
/* call-seq:
|
104
|
+
* stylesheet.apply(document, {params}) -> XML::Document
|
105
|
+
*
|
106
|
+
* Apply this stylesheet transformation to the provided document.
|
107
|
+
* This method may be invoked multiple times.
|
108
|
+
*
|
109
|
+
* Params:
|
110
|
+
* * document - An instance of an XML::Document
|
111
|
+
* * params - An optional hash table that specifies the values for xsl:param values embedded in the stylesheet.
|
112
|
+
*
|
113
|
+
* Example:
|
114
|
+
*
|
115
|
+
* stylesheet_doc = XML::Document.file('stylesheet_file')
|
116
|
+
* stylesheet = XSLT::Stylesheet.new(stylesheet_doc)
|
117
|
+
*
|
118
|
+
* xml_doc = XML::Document.file('xml_file')
|
119
|
+
* result = stylesheet.apply(xml_doc)
|
120
|
+
* result = stylesheet.apply(xml_doc, {:foo => 'bar'})
|
121
|
+
*/
|
122
|
+
static VALUE
|
123
|
+
ruby_xslt_stylesheet_apply(int argc, VALUE *argv, VALUE self) {
|
124
|
+
xmlDocPtr xdoc;
|
125
|
+
xsltStylesheetPtr xstylesheet;
|
126
|
+
xmlDocPtr result;
|
127
|
+
VALUE document;
|
128
|
+
VALUE params;
|
129
|
+
int i;
|
130
|
+
|
131
|
+
char** pParams;
|
132
|
+
|
133
|
+
if (argc > 2 || argc < 1)
|
134
|
+
rb_raise(rb_eArgError, "wrong number of arguments (need 1 or 2)");
|
135
|
+
|
136
|
+
document = argv[0];
|
137
|
+
|
138
|
+
if (!rb_obj_is_kind_of(document, ruby_xslt_stylesheet_document_klass()))
|
139
|
+
rb_raise(rb_eTypeError, "Must pass in an XML::Document instance.");
|
140
|
+
|
141
|
+
/* Make sure params is a flat array */
|
142
|
+
params = (argc == 2 ? argv[1]: Qnil);
|
143
|
+
params = rb_Array(params);
|
144
|
+
rb_funcall(params, rb_intern("flatten!"), 0);
|
145
|
+
pParams = ruby_xslt_coerce_params(params);
|
146
|
+
|
147
|
+
Data_Get_Struct(document, xmlDoc, xdoc);
|
148
|
+
Data_Get_Struct(self, xsltStylesheet, xstylesheet);
|
149
|
+
|
150
|
+
result = xsltApplyStylesheet(xstylesheet, xdoc, (const char**)pParams);
|
151
|
+
|
152
|
+
if (!result)
|
153
|
+
rb_raise(eXSLTError, "Transformation failed");
|
154
|
+
|
155
|
+
/* Free allocated array of *chars. Note we don't have to
|
156
|
+
free the last array item since its set to NULL. */
|
157
|
+
for (i=0; i<RARRAY_LEN(params); i++) {
|
158
|
+
ruby_xfree(pParams[i]);
|
159
|
+
}
|
160
|
+
ruby_xfree(pParams);
|
161
|
+
|
162
|
+
return rxml_document_wrap(result);
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
/* call-seq:
|
167
|
+
* sheet.debug(to = $stdout) => (true|false)
|
168
|
+
*
|
169
|
+
* Output a debug dump of this stylesheet to the specified output
|
170
|
+
* stream (an instance of IO, defaults to $stdout). Requires
|
171
|
+
* libxml/libxslt be compiled with debugging enabled. If this
|
172
|
+
* is not the case, a warning is triggered and the method returns
|
173
|
+
* false.
|
174
|
+
*/
|
175
|
+
/*VALUE
|
176
|
+
ruby_xslt_stylesheet_debug(int argc, VALUE *argv, VALUE self) {
|
177
|
+
#ifdef LIBXML_DEBUG_ENABLED
|
178
|
+
OpenFile *fptr;
|
179
|
+
VALUE io;
|
180
|
+
FILE *out;
|
181
|
+
rxml_document_t *parsed;
|
182
|
+
ruby_xslt_stylesheet *xss;
|
183
|
+
|
184
|
+
Data_Get_Struct(self, ruby_xslt_stylesheet, xss);
|
185
|
+
if (NIL_P(xss->parsed))
|
186
|
+
rb_raise(eXMLXSLTStylesheetRequireParsedDoc, "must have a parsed XML result");
|
187
|
+
|
188
|
+
switch (argc) {
|
189
|
+
case 0:
|
190
|
+
io = rb_stdout;
|
191
|
+
break;
|
192
|
+
case 1:
|
193
|
+
io = argv[0];
|
194
|
+
if (rb_obj_is_kind_of(io, rb_cIO) == Qfalse)
|
195
|
+
rb_raise(rb_eTypeError, "need an IO object");
|
196
|
+
break;
|
197
|
+
default:
|
198
|
+
rb_raise(rb_eArgError, "wrong number of arguments (0 or 1)");
|
199
|
+
}
|
200
|
+
|
201
|
+
Data_Get_Struct(xss->parsed, rxml_document_t, parsed);
|
202
|
+
if (parsed->doc == NULL)
|
203
|
+
return(Qnil);
|
204
|
+
|
205
|
+
GetOpenFile(io, fptr);
|
206
|
+
rb_io_check_writable(fptr);
|
207
|
+
out = GetWriteFile(fptr);
|
208
|
+
xmlDebugDumpDocument(out, parsed->doc);
|
209
|
+
return(Qtrue);
|
210
|
+
#else
|
211
|
+
rb_warn("libxml/libxslt was compiled without debugging support. Please recompile libxml/libxslt and their Ruby modules");
|
212
|
+
return(Qfalse);
|
213
|
+
#endif
|
214
|
+
}
|
215
|
+
*/
|
216
|
+
|
217
|
+
// TODO should this automatically apply the sheet if not already,
|
218
|
+
// given that we're unlikely to do much else with it?
|
219
|
+
|
220
|
+
/* call-seq:
|
221
|
+
* sheet.print(to = $stdout) => number_of_bytes
|
222
|
+
*
|
223
|
+
* Output the result of the transform to the specified output
|
224
|
+
* stream (an IO instance, defaults to $stdout). You *must* call
|
225
|
+
* +apply+ before this method or an exception will be raised.
|
226
|
+
*/
|
227
|
+
/*VALUE
|
228
|
+
ruby_xslt_stylesheet_print(int argc, VALUE *argv, VALUE self) {
|
229
|
+
OpenFile *fptr;
|
230
|
+
VALUE io;
|
231
|
+
FILE *out;
|
232
|
+
rxml_document_t *parsed;
|
233
|
+
ruby_xslt_stylesheet *xss;
|
234
|
+
int bytes;
|
235
|
+
|
236
|
+
Data_Get_Struct(self, ruby_xslt_stylesheet, xss);
|
237
|
+
if (NIL_P(xss->parsed))
|
238
|
+
rb_raise(eXMLXSLTStylesheetRequireParsedDoc, "must have a parsed XML result");
|
239
|
+
|
240
|
+
switch (argc) {
|
241
|
+
case 0:
|
242
|
+
io = rb_stdout;
|
243
|
+
break;
|
244
|
+
case 1:
|
245
|
+
io = argv[0];
|
246
|
+
if (rb_obj_is_kind_of(io, rb_cIO) == Qfalse)
|
247
|
+
rb_raise(rb_eTypeError, "need an IO object");
|
248
|
+
break;
|
249
|
+
default:
|
250
|
+
rb_raise(rb_eArgError, "wrong number of arguments (0 or 1)");
|
251
|
+
}
|
252
|
+
|
253
|
+
Data_Get_Struct(xss->parsed, rxml_document_t, parsed);
|
254
|
+
if (parsed->doc == NULL)
|
255
|
+
return(Qnil);
|
256
|
+
|
257
|
+
GetOpenFile(io, fptr);
|
258
|
+
rb_io_check_writable(fptr);
|
259
|
+
out = GetWriteFile(fptr);
|
260
|
+
bytes = xsltSaveResultToFile(out, parsed->doc, xss->xsp);
|
261
|
+
|
262
|
+
return(INT2NUM(bytes));
|
263
|
+
}*/
|
264
|
+
|
265
|
+
|
266
|
+
#ifdef RDOC_NEVER_DEFINED
|
267
|
+
cLibXSLT = rb_define_module("LibXSLT");
|
268
|
+
cXSLT = rb_define_module_under(cLibXSLT, "XSLT");
|
269
|
+
#endif
|
270
|
+
|
271
|
+
void
|
272
|
+
ruby_init_xslt_stylesheet(void) {
|
273
|
+
cXSLTStylesheet = rb_define_class_under(cXSLT, "Stylesheet", rb_cObject);
|
274
|
+
rb_define_alloc_func(cXSLTStylesheet, ruby_xslt_stylesheet_alloc);
|
275
|
+
rb_define_method(cXSLTStylesheet, "initialize", ruby_xslt_stylesheet_initialize, 1);
|
276
|
+
rb_define_method(cXSLTStylesheet, "apply", ruby_xslt_stylesheet_apply, -1);
|
277
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/* $Id: ruby_xslt_stylesheet.h 42 2007-12-07 06:09:35Z transami $ */
|
2
|
+
|
3
|
+
/* Please see the LICENSE file for copyright and distribution information. */
|
4
|
+
|
5
|
+
#ifndef __RUBY_LIBXSLT_STYLESHEET__
|
6
|
+
#define __RUBY_LIBXSLT_STYLESHEET__
|
7
|
+
|
8
|
+
// Includes from libxml-ruby
|
9
|
+
#include <libxml/ruby_libxml.h>
|
10
|
+
#include <libxml/ruby_xml_document.h>
|
11
|
+
|
12
|
+
extern VALUE cXSLTStylesheet;
|
13
|
+
|
14
|
+
void ruby_init_xslt_stylesheet(void);
|
15
|
+
|
16
|
+
#endif
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
Microsoft Visual Studio Solution File, Format Version 11.00
|
3
|
+
# Visual Studio 2010
|
4
|
+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxslt_ruby", "libxslt_ruby.vcxproj", "{6DCFD1E6-224E-479C-BBD9-B6931DFCD02C}"
|
5
|
+
EndProject
|
6
|
+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml_ruby", "..\..\..\libxml-ruby\ext\vc\libxml_ruby_18\libxml_ruby.vcxproj", "{0B65CD1D-EEB9-41AE-93BB-75496E504152}"
|
7
|
+
EndProject
|
8
|
+
Global
|
9
|
+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
10
|
+
Debug|Win32 = Debug|Win32
|
11
|
+
Release|Win32 = Release|Win32
|
12
|
+
EndGlobalSection
|
13
|
+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
14
|
+
{6DCFD1E6-224E-479C-BBD9-B6931DFCD02C}.Debug|Win32.ActiveCfg = Debug|Win32
|
15
|
+
{6DCFD1E6-224E-479C-BBD9-B6931DFCD02C}.Debug|Win32.Build.0 = Debug|Win32
|
16
|
+
{6DCFD1E6-224E-479C-BBD9-B6931DFCD02C}.Release|Win32.ActiveCfg = Release|Win32
|
17
|
+
{6DCFD1E6-224E-479C-BBD9-B6931DFCD02C}.Release|Win32.Build.0 = Release|Win32
|
18
|
+
{0B65CD1D-EEB9-41AE-93BB-75496E504152}.Debug|Win32.ActiveCfg = Debug|Win32
|
19
|
+
{0B65CD1D-EEB9-41AE-93BB-75496E504152}.Debug|Win32.Build.0 = Debug|Win32
|
20
|
+
{0B65CD1D-EEB9-41AE-93BB-75496E504152}.Release|Win32.ActiveCfg = Release|Win32
|
21
|
+
{0B65CD1D-EEB9-41AE-93BB-75496E504152}.Release|Win32.Build.0 = Release|Win32
|
22
|
+
EndGlobalSection
|
23
|
+
GlobalSection(SolutionProperties) = preSolution
|
24
|
+
HideSolutionNode = FALSE
|
25
|
+
EndGlobalSection
|
26
|
+
EndGlobal
|
@@ -0,0 +1,110 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3
|
+
<ItemGroup Label="ProjectConfigurations">
|
4
|
+
<ProjectConfiguration Include="Debug|Win32">
|
5
|
+
<Configuration>Debug</Configuration>
|
6
|
+
<Platform>Win32</Platform>
|
7
|
+
</ProjectConfiguration>
|
8
|
+
<ProjectConfiguration Include="Release|Win32">
|
9
|
+
<Configuration>Release</Configuration>
|
10
|
+
<Platform>Win32</Platform>
|
11
|
+
</ProjectConfiguration>
|
12
|
+
</ItemGroup>
|
13
|
+
<PropertyGroup Label="Globals">
|
14
|
+
<ProjectGuid>{6DCFD1E6-224E-479C-BBD9-B6931DFCD02C}</ProjectGuid>
|
15
|
+
<RootNamespace>libxsl</RootNamespace>
|
16
|
+
<Keyword>Win32Proj</Keyword>
|
17
|
+
</PropertyGroup>
|
18
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
19
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
20
|
+
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
21
|
+
<CharacterSet>Unicode</CharacterSet>
|
22
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
23
|
+
</PropertyGroup>
|
24
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
25
|
+
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
26
|
+
<CharacterSet>Unicode</CharacterSet>
|
27
|
+
</PropertyGroup>
|
28
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
29
|
+
<ImportGroup Label="ExtensionSettings">
|
30
|
+
</ImportGroup>
|
31
|
+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
32
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
33
|
+
</ImportGroup>
|
34
|
+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
35
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
36
|
+
</ImportGroup>
|
37
|
+
<PropertyGroup Label="UserMacros" />
|
38
|
+
<PropertyGroup>
|
39
|
+
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
40
|
+
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\MinGW\local\src\libxslt-ruby\lib\1.8</OutDir>
|
41
|
+
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
|
42
|
+
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
43
|
+
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
44
|
+
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
|
45
|
+
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
46
|
+
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.so</TargetExt>
|
47
|
+
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.so</TargetExt>
|
48
|
+
</PropertyGroup>
|
49
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
50
|
+
<ClCompile>
|
51
|
+
<Optimization>Disabled</Optimization>
|
52
|
+
<AdditionalIncludeDirectories>C:\MinGW\local\ruby18vc\lib\ruby\1.8\i386-mswin32_100;C:\MinGW\local\src\libxml-ruby\ext;C:\MinGW\local\include;C:\MinGW\local\include\libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
53
|
+
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;libxsl_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
54
|
+
<MinimalRebuild>true</MinimalRebuild>
|
55
|
+
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
56
|
+
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
57
|
+
<PrecompiledHeader>
|
58
|
+
</PrecompiledHeader>
|
59
|
+
<WarningLevel>Level3</WarningLevel>
|
60
|
+
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
61
|
+
</ClCompile>
|
62
|
+
<Link>
|
63
|
+
<AdditionalDependencies>msvcr100-ruby18.lib;libxml2.lib;libxslt.lib;libexslt.lib;libxml_ruby.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
64
|
+
<OutputFile>$(OutDir)\$(TargetName)$(TargetExt)</OutputFile>
|
65
|
+
<AdditionalLibraryDirectories>C:\MinGW\local\ruby18vc\lib;C:\MinGW\local\lib;C:\MinGW\local\src\libxml-ruby\lib\1.8;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
66
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
67
|
+
<SubSystem>Windows</SubSystem>
|
68
|
+
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
69
|
+
<DataExecutionPrevention>
|
70
|
+
</DataExecutionPrevention>
|
71
|
+
<TargetMachine>MachineX86</TargetMachine>
|
72
|
+
</Link>
|
73
|
+
</ItemDefinitionGroup>
|
74
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
75
|
+
<ClCompile>
|
76
|
+
<AdditionalIncludeDirectories>C:\Development\msys\src\libiconv-1.12\include;C:\Development\ruby\lib\ruby\1.8\i386-mswin32;C:\Development\msys\src\libxml2-2.6.32\include;C:\Development\msys\src\libxslt-1.1.24;C:\Development\msys\src\rlibxml\ext;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
77
|
+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBXML_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
78
|
+
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
79
|
+
<PrecompiledHeader>
|
80
|
+
</PrecompiledHeader>
|
81
|
+
<WarningLevel>Level3</WarningLevel>
|
82
|
+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
83
|
+
</ClCompile>
|
84
|
+
<Link>
|
85
|
+
<AdditionalDependencies>msvcrt-ruby18.lib;libxml2.lib;libxslt.lib;libexslt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
86
|
+
<OutputFile>$(OutDir)$(ProjectName).so</OutputFile>
|
87
|
+
<AdditionalLibraryDirectories>C:\Development\ruby\lib;C:\Development\msys\src\libxslt-1.1.24\win32\bin.msvc;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
88
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
89
|
+
<SubSystem>Windows</SubSystem>
|
90
|
+
<OptimizeReferences>true</OptimizeReferences>
|
91
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
92
|
+
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
93
|
+
<DataExecutionPrevention>
|
94
|
+
</DataExecutionPrevention>
|
95
|
+
<TargetMachine>MachineX86</TargetMachine>
|
96
|
+
</Link>
|
97
|
+
</ItemDefinitionGroup>
|
98
|
+
<ItemGroup>
|
99
|
+
<ClCompile Include="..\libxslt\libxslt.c" />
|
100
|
+
<ClCompile Include="..\libxslt\ruby_xslt_stylesheet.c" />
|
101
|
+
</ItemGroup>
|
102
|
+
<ItemGroup>
|
103
|
+
<ClInclude Include="..\libxslt\libxslt.h" />
|
104
|
+
<ClInclude Include="..\libxslt\ruby_xslt_stylesheet.h" />
|
105
|
+
<ClInclude Include="..\libxslt\version.h" />
|
106
|
+
</ItemGroup>
|
107
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
108
|
+
<ImportGroup Label="ExtensionTargets">
|
109
|
+
</ImportGroup>
|
110
|
+
</Project>
|