OLD | NEW |
| (Empty) |
1 # Copyright 2008, Google Inc. | |
2 # All rights reserved. | |
3 # | |
4 # Redistribution and use in source and binary forms, with or without | |
5 # modification, are permitted provided that the following conditions are | |
6 # met: | |
7 # | |
8 # * Redistributions of source code must retain the above copyright | |
9 # notice, this list of conditions and the following disclaimer. | |
10 # * Redistributions in binary form must reproduce the above | |
11 # copyright notice, this list of conditions and the following disclaimer | |
12 # in the documentation and/or other materials provided with the | |
13 # distribution. | |
14 # * Neither the name of Google Inc. nor the names of its | |
15 # contributors may be used to endorse or promote products derived from | |
16 # this software without specific prior written permission. | |
17 # | |
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
29 | |
30 Import('env') | |
31 | |
32 env = env.Clone() | |
33 | |
34 if env.WantSystemLib('libxslt'): | |
35 Return() | |
36 | |
37 env.Prepend( | |
38 CPPPATH = [ | |
39 '$LIBXML_DIR/DerivedSources/include', | |
40 '$LIBXML_DIR/include', | |
41 '$ICU38_DIR/public/common', | |
42 '$ICU38_DIR/public/18n', | |
43 '$ZLIB_DIR', | |
44 'scons', | |
45 '.', | |
46 '../', | |
47 ], | |
48 ) | |
49 | |
50 env.Append( | |
51 CPPDEFINES = [ | |
52 'U_STATIC_IMPLEMENTATION', | |
53 'LIBXML_STATIC', | |
54 'LIBXSLT_STATIC', | |
55 ], | |
56 ) | |
57 | |
58 if env.Bit('windows'): | |
59 env.Append( | |
60 CCFLAGS = [ | |
61 '/TC', | |
62 '/wd4800', | |
63 ], | |
64 ) | |
65 | |
66 | |
67 input_files = ChromeFileList([ | |
68 MSVSFilter('libxslt', [ | |
69 'libxslt/attributes.c', | |
70 'libxslt/attributes.h', | |
71 'libxslt/attrvt.c', | |
72 'libxslt/documents.c', | |
73 'libxslt/documents.h', | |
74 'libxslt/extensions.c', | |
75 'libxslt/extensions.h', | |
76 'libxslt/extra.c', | |
77 'libxslt/extra.h', | |
78 'libxslt/functions.c', | |
79 'libxslt/functions.h', | |
80 'libxslt/imports.c', | |
81 'libxslt/imports.h', | |
82 'libxslt/keys.c', | |
83 'libxslt/keys.h', | |
84 'libxslt/libxslt.h', | |
85 'libxslt/namespaces.c', | |
86 'libxslt/namespaces.h', | |
87 'libxslt/numbers.c', | |
88 'libxslt/numbersInternals.h', | |
89 'libxslt/pattern.c', | |
90 'libxslt/pattern.h', | |
91 'libxslt/preproc.c', | |
92 'libxslt/preproc.h', | |
93 'libxslt/security.c', | |
94 'libxslt/security.h', | |
95 'libxslt/templates.c', | |
96 'libxslt/templates.h', | |
97 'libxslt/transform.c', | |
98 'libxslt/transform.h', | |
99 'libxslt/trio.h', | |
100 'libxslt/triodef.h', | |
101 'libxslt/variables.c', | |
102 'libxslt/variables.h', | |
103 'libxslt/win32config.h', | |
104 'libxslt/xslt.c', | |
105 'libxslt/xslt.h', | |
106 'libxslt/xsltconfig.h', | |
107 'libxslt/xsltexports.h', | |
108 'libxslt/xsltInternals.h', | |
109 'libxslt/xsltutils.c', | |
110 'libxslt/xsltutils.h', | |
111 'libxslt/xsltwin32config.h', | |
112 ]), | |
113 ]) | |
114 | |
115 env.ChromeLibrary('libxslt', input_files) | |
116 | |
117 p = env.ChromeMSVSProject('build/libxslt.vcproj', | |
118 dest=('$CHROME_SRC_DIR/third_party/libxslt' + | |
119 '/build/libxslt.vcproj'), | |
120 guid='{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}', | |
121 dependencies = [ | |
122 '$LIBXML_DIR/build/libxml.vcproj', | |
123 ], | |
124 keyword='Win32Proj', | |
125 # TODO(sgk): when we can intuit the hierarchy | |
126 # from the built targets. | |
127 #buildtargets=TODO, | |
128 files=input_files, | |
129 tools=[ | |
130 'VCLibrarianTool', | |
131 'VCCLCompilerTool', | |
132 ], | |
133 ConfigurationType='4') | |
134 | |
135 p.AddConfig('Debug|Win32', | |
136 InheritedPropertySheets=[ | |
137 '$(SolutionDir)../build/debug.vsprops', | |
138 './libxslt.vsprops', | |
139 ]) | |
140 | |
141 p.AddConfig('Release|Win32', | |
142 InheritedPropertySheets=[ | |
143 '$(SolutionDir)../build/release.vsprops', | |
144 './libxslt.vsprops', | |
145 ]) | |
146 | |
147 if env.Bit('windows'): | |
148 config_files = [ | |
149 # The configure.js script must be first in this list; the | |
150 # env.Command() call below executes the first list element. | |
151 | |
152 'win32/configure.js', | |
153 'win32/Makefile.msvc', | |
154 | |
155 'config.h.in', | |
156 'configure.in', | |
157 'libexslt.pc.in', | |
158 'libxslt.pc.in', | |
159 'libxslt.spec.in', | |
160 'xslt-config.in', | |
161 'xsltConf.sh.in', | |
162 | |
163 'libexslt/exsltconfig.h.in', | |
164 | |
165 'libxslt/xsltconfig.h.in', | |
166 'libxslt/xsltwin32config.h.in', | |
167 'libxslt/win32config.h', | |
168 ] | |
169 | |
170 copied_sources = [] | |
171 for cf in config_files: | |
172 result = env.Command('scons/' + cf, cf, Copy('$TARGET', '$SOURCE')) | |
173 copied_sources.extend(result) | |
174 | |
175 env.Command(['scons/config.h'], | |
176 copied_sources, | |
177 'cd ${SOURCE.dir} && $CSCRIPT ${SOURCE.file} $CONFIG_OPTIONS', | |
178 CONFIG_OPTIONS='compiler=msvc') | |
179 elif env.Bit('linux'): | |
180 config_files = [ | |
181 'config.h', | |
182 'xslt-config', | |
183 'libexslt/exsltconfig.h', | |
184 'libxslt/xsltconfig.h', | |
185 'libxslt/xsltwin32config.h', | |
186 ] | |
187 for cf in config_files: | |
188 result = env.Command('scons/' + cf, 'linux/' + cf, | |
189 Copy('$TARGET', '$SOURCE')) | |
OLD | NEW |