libxslt-ruby 1.0.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,5 @@
1
+ #define RUBY_LIBXSLT_VERSION "1.0.1"
2
+ #define RUBY_LIBXSLT_VERNUM 1
3
+ #define RUBY_LIBXSLT_VER_MAJ 0
4
+ #define RUBY_LIBXSLT_VER_MIN 1
5
+ #define RUBY_LIBXSLT_VER_MIC 0
@@ -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>