- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / installer / mac / third_party / xz / xz.gyp
1 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 {
6   'variables': {
7     # Configuration. Ordinarily, all of these features are enabled, and
8     # "small" is disabled. For Chromium's purposes, enable "small" and disable
9     # nearly everything else to save about 36kB in the lzma_decompress
10     # library, which will be distributed with updates. This also translates to
11     # a 25kB savings in the compressed disk image that will contain the
12     # update.
13     'check_crc32': 1,
14     'check_crc64': 0,
15     'check_sha256': 0,
16     'coder_lzma1': 0,
17     'coder_lzma2': 1,
18     'coder_delta': 0,
19     'coder_bcj_arm': 0,
20     'coder_bcj_armthumb': 0,
21     'coder_bcj_ia64': 0,
22     'coder_bcj_powerpc': 0,
23     'coder_bcj_sparc': 0,
24     'coder_bcj_x86': 1,
25     'small': 1,
26
27     'lzma_common_defines': [
28       'HAVE_CONFIG_H',
29     ],
30     'lzma_decompress_defines': [
31     ],
32     'lzma_compress_defines': [
33     ],
34
35     'lzma_include_dirs': [
36       'config/<(OS)',
37       'xz/src/common',
38       'xz/src/liblzma/api',
39       'xz/src/liblzma/check',
40       'xz/src/liblzma/common',
41       'xz/src/liblzma/delta',
42       'xz/src/liblzma/lz',
43       'xz/src/liblzma/lzma',
44       'xz/src/liblzma/rangecoder',
45       'xz/src/liblzma/simple',
46     ],
47
48     'lzma_common_source_files': [
49       'xz/src/common/tuklib_physmem.c',
50       'xz/src/liblzma/check/check.c',
51       'xz/src/liblzma/common/block_util.c',
52       'xz/src/liblzma/common/common.c',
53       'xz/src/liblzma/common/easy_preset.c',
54       'xz/src/liblzma/common/filter_common.c',
55       'xz/src/liblzma/common/hardware_physmem.c',
56       'xz/src/liblzma/common/index.c',
57       'xz/src/liblzma/common/stream_flags_common.c',
58       'xz/src/liblzma/common/vli_size.c',
59       'xz/src/liblzma/lzma/lzma_encoder_presets.c',
60       'xz/src/liblzma/rangecoder/price_table.c',
61     ],
62     'lzma_decompress_source_files': [
63       'xz/src/liblzma/common/alone_decoder.c',
64       'xz/src/liblzma/common/auto_decoder.c',
65       'xz/src/liblzma/common/block_buffer_decoder.c',
66       'xz/src/liblzma/common/block_decoder.c',
67       'xz/src/liblzma/common/block_header_decoder.c',
68       'xz/src/liblzma/common/easy_decoder_memusage.c',
69       'xz/src/liblzma/common/filter_buffer_decoder.c',
70       'xz/src/liblzma/common/filter_decoder.c',
71       'xz/src/liblzma/common/filter_flags_decoder.c',
72       'xz/src/liblzma/common/index_decoder.c',
73       'xz/src/liblzma/common/index_hash.c',
74       'xz/src/liblzma/common/stream_buffer_decoder.c',
75       'xz/src/liblzma/common/stream_decoder.c',
76       'xz/src/liblzma/common/stream_flags_decoder.c',
77       'xz/src/liblzma/common/vli_decoder.c',
78       'xz/src/liblzma/lz/lz_decoder.c',
79       'xz/src/liblzma/lzma/lzma_decoder.c',
80     ],
81     'lzma_compress_source_files': [
82       'xz/src/liblzma/common/alone_encoder.c',
83       'xz/src/liblzma/common/block_buffer_encoder.c',
84       'xz/src/liblzma/common/block_encoder.c',
85       'xz/src/liblzma/common/block_header_encoder.c',
86       'xz/src/liblzma/common/easy_buffer_encoder.c',
87       'xz/src/liblzma/common/easy_encoder.c',
88       'xz/src/liblzma/common/easy_encoder_memusage.c',
89       'xz/src/liblzma/common/filter_buffer_encoder.c',
90       'xz/src/liblzma/common/filter_encoder.c',
91       'xz/src/liblzma/common/filter_flags_encoder.c',
92       'xz/src/liblzma/common/index_encoder.c',
93       'xz/src/liblzma/common/stream_buffer_encoder.c',
94       'xz/src/liblzma/common/stream_encoder.c',
95       'xz/src/liblzma/common/stream_flags_encoder.c',
96       'xz/src/liblzma/common/vli_encoder.c',
97       'xz/src/liblzma/lz/lz_encoder.c',
98       'xz/src/liblzma/lz/lz_encoder_mf.c',
99       'xz/src/liblzma/lzma/lzma_encoder.c',
100       'xz/src/liblzma/lzma/lzma_encoder_optimum_fast.c',
101       'xz/src/liblzma/lzma/lzma_encoder_optimum_normal.c',
102     ],
103
104     'conditions': [
105       ['small != 0', {
106         'lzma_common_defines': [
107           'HAVE_SMALL=1',
108         ],
109         'lzma_common_source_files': [
110           # CRC-32 must be compiled for header integrity checks, even if it is
111           # not enabled for payload integrity checks.
112           'xz/src/liblzma/check/crc32_small.c',
113         ],
114       }, {
115         'lzma_common_source_files': [
116           # CRC-32 must be compiled for header integrity checks, even if it is
117           # not enabled for payload integrity checks.
118           #
119           # Use the "fast" implementation instead of the "x86" one for
120           # architecture independence. Both require the "table."
121           'xz/src/liblzma/check/crc32_fast.c',
122           'xz/src/liblzma/check/crc32_table.c',
123           # 'xz/src/liblzma/check/crc32_x86.S',
124         ],
125         'lzma_compress_source_files': [
126           'xz/src/liblzma/lzma/fastpos_table.c',
127         ],
128       }],
129       ['check_crc32 != 0', {
130         'lzma_common_defines': [
131           'HAVE_CHECK_CRC32=1',
132         ],
133       }],
134       ['check_crc64 != 0', {
135         'lzma_common_defines': [
136           'HAVE_CHECK_CRC64=1',
137         ],
138         'conditions': [
139           ['small != 0', {
140             'lzma_common_source_files': [
141               'xz/src/liblzma/check/crc64_small.c',
142             ],
143           }, {
144             'lzma_common_source_files': [
145               # Use the "fast" implementation instead of the "x86" one for
146               # architecture independence. Both require the "table."
147               'xz/src/liblzma/check/crc64_fast.c',
148               'xz/src/liblzma/check/crc64_table.c',
149               # 'xz/src/liblzma/check/crc64_x86.S',
150             ],
151           }],
152         ],
153       }],
154       ['check_sha256 != 0', {
155         'lzma_common_defines': [
156           'HAVE_CHECK_SHA256=1',
157         ],
158         'lzma_common_source_files': [
159           'xz/src/liblzma/check/sha256.c',
160         ],
161       }],
162       ['coder_lzma1 != 0', {
163         'lzma_decompress_defines': [
164           'HAVE_DECODER_LZMA1=1',
165         ],
166         'lzma_compress_defines': [
167           'HAVE_ENCODER_LZMA1=1',
168         ],
169       }],
170       ['coder_lzma2 != 0', {
171         'lzma_decompress_defines': [
172           'HAVE_DECODER_LZMA2=1',
173         ],
174         'lzma_compress_defines': [
175           'HAVE_ENCODER_LZMA2=1',
176         ],
177         'lzma_decompress_source_files': [
178           'xz/src/liblzma/lzma/lzma2_decoder.c',
179         ],
180         'lzma_compress_source_files': [
181           'xz/src/liblzma/lzma/lzma2_encoder.c',
182         ],
183       }],
184       ['coder_delta != 0', {
185         'lzma_decompress_defines': [
186           'HAVE_DECODER_DELTA=1',
187         ],
188         'lzma_compress_defines': [
189           'HAVE_ENCODER_DELTA=1',
190         ],
191         'lzma_common_source_files': [
192           'xz/src/liblzma/delta/delta_common.c',
193         ],
194         'lzma_decompress_source_files': [
195           'xz/src/liblzma/delta/delta_decoder.c',
196         ],
197         'lzma_compress_source_files': [
198           'xz/src/liblzma/delta/delta_encoder.c',
199         ],
200       }],
201       ['coder_bcj_arm != 0', {
202         'lzma_decompress_defines': [
203           'HAVE_DECODER_ARM=1',
204         ],
205         'lzma_compress_defines': [
206           'HAVE_ENCODER_ARM=1',
207         ],
208         'lzma_common_source_files': [
209           'xz/src/liblzma/simple/arm.c',
210         ],
211       }],
212       ['coder_bcj_armthumb != 0', {
213         'lzma_decompress_defines': [
214           'HAVE_DECODER_ARMTHUMB=1',
215         ],
216         'lzma_compress_defines': [
217           'HAVE_ENCODER_ARMTHUMB=1',
218         ],
219         'lzma_common_source_files': [
220           'xz/src/liblzma/simple/armthumb.c',
221         ],
222       }],
223       ['coder_bcj_ia64 != 0', {
224         'lzma_decompress_defines': [
225           'HAVE_DECODER_IA64=1',
226         ],
227         'lzma_compress_defines': [
228           'HAVE_ENCODER_IA64=1',
229         ],
230         'lzma_common_source_files': [
231           'xz/src/liblzma/simple/ia64.c',
232         ],
233       }],
234       ['coder_bcj_powerpc != 0', {
235         'lzma_decompress_defines': [
236           'HAVE_DECODER_POWERPC=1',
237         ],
238         'lzma_compress_defines': [
239           'HAVE_ENCODER_POWERPC=1',
240         ],
241         'lzma_common_source_files': [
242           'xz/src/liblzma/simple/powerpc.c',
243         ],
244       }],
245       ['coder_bcj_sparc != 0', {
246         'lzma_decompress_defines': [
247           'HAVE_DECODER_SPARC=1',
248         ],
249         'lzma_compress_defines': [
250           'HAVE_ENCODER_SPARC=1',
251         ],
252         'lzma_common_source_files': [
253           'xz/src/liblzma/simple/sparc.c',
254         ],
255       }],
256       ['coder_bcj_x86 != 0', {
257         'lzma_decompress_defines': [
258           'HAVE_DECODER_X86=1',
259         ],
260         'lzma_compress_defines': [
261           'HAVE_ENCODER_X86=1',
262         ],
263         'lzma_common_source_files': [
264           'xz/src/liblzma/simple/x86.c',
265         ],
266       }],
267       ['coder_bcj_arm != 0 or coder_bcj_armthumb != 0 or coder_bcj_ia64 != 0 or coder_bcj_powerpc != 0 or coder_bcj_sparc != 0 or coder_bcj_x86 != 0', {
268         'lzma_common_source_files': [
269           'xz/src/liblzma/simple/simple_coder.c',
270         ],
271         'lzma_decompress_source_files': [
272           'xz/src/liblzma/simple/simple_decoder.c',
273         ],
274         'lzma_compress_source_files': [
275           'xz/src/liblzma/simple/simple_encoder.c',
276         ],
277       }],
278     ],  # conditions
279   },  # variables
280
281   'targets': [
282     {
283       'target_name': 'lzma',
284       'type': 'static_library',
285       'defines': [
286         '<@(lzma_common_defines)',
287         '<@(lzma_decompress_defines)',
288         '<@(lzma_compress_defines)',
289       ],
290       'include_dirs': [
291         '<@(lzma_include_dirs)',
292       ],
293       'sources': [
294         '<@(lzma_common_source_files)',
295         '<@(lzma_decompress_source_files)',
296         '<@(lzma_compress_source_files)',
297       ],
298       'direct_dependent_settings': {
299         'include_dirs': [
300           'xz/src/liblzma/api',
301         ],
302       },
303     },
304
305     {
306       'target_name': 'lzma_decompress',
307
308       # Always build as a shared library to promote code sharing. This library
309       # is distributed in Google Chrome update disk images and is used by more
310       # than one tool.
311       'type': 'shared_library',
312
313       'xcode_settings': {
314         # The library will reside in the same directory as executables linked
315         # against it.
316         'DYLIB_INSTALL_NAME_BASE': '@loader_path',
317
318         # Trim the list of exported symbols to just those needed by
319         # dependents. This limits the set of "roots" seen during dead-code
320         # stripping and reduces the size of the library.
321         'EXPORTED_SYMBOLS_FILE': 'lzma_decompress.export',
322       },
323
324       'defines': [
325         '<@(lzma_common_defines)',
326         '<@(lzma_decompress_defines)',
327       ],
328       'include_dirs': [
329         '<@(lzma_include_dirs)',
330       ],
331       'sources': [
332         '<@(lzma_common_source_files)',
333         '<@(lzma_decompress_source_files)',
334       ],
335       'direct_dependent_settings': {
336         'include_dirs': [
337           'xz/src/liblzma/api',
338         ],
339       },
340       'configurations': {
341         'Release': {
342           'xcode_settings': {
343             # Use -Os to minimize the size of the installer tools.
344             'GCC_OPTIMIZATION_LEVEL': 's',
345           },
346         },
347       },
348     },
349
350     {
351       'target_name': 'xz',
352       'type': 'executable',
353       'dependencies': [
354         'lzma',
355       ],
356       'defines': [
357         '<@(lzma_common_defines)',
358         '<@(lzma_decompress_defines)',
359         '<@(lzma_compress_defines)',
360       ],
361       'include_dirs': [
362         'config/<(OS)',
363         'xz/src/common',
364       ],
365       'sources': [
366         'xz/src/common/tuklib_cpucores.c',
367         'xz/src/common/tuklib_exit.c',
368         'xz/src/common/tuklib_mbstr_fw.c',
369         'xz/src/common/tuklib_mbstr_width.c',
370         'xz/src/common/tuklib_open_stdxxx.c',
371         'xz/src/common/tuklib_progname.c',
372         'xz/src/xz/args.c',
373         'xz/src/xz/coder.c',
374         'xz/src/xz/file_io.c',
375         'xz/src/xz/hardware.c',
376         'xz/src/xz/list.c',
377         'xz/src/xz/main.c',
378         'xz/src/xz/message.c',
379         'xz/src/xz/options.c',
380         'xz/src/xz/signals.c',
381         'xz/src/xz/suffix.c',
382         'xz/src/xz/util.c',
383       ],
384     },
385
386     {
387       'target_name': 'xzdec',
388       'type': 'executable',
389       'dependencies': [
390         'lzma_decompress',
391       ],
392       'defines': [
393         '<@(lzma_common_defines)',
394         '<@(lzma_decompress_defines)',
395       ],
396       'include_dirs': [
397         'config/<(OS)',
398         'xz/src/common',
399       ],
400       'sources': [
401         'xz/src/common/tuklib_exit.c',
402         'xz/src/common/tuklib_progname.c',
403         'xz/src/xzdec/xzdec.c',
404       ],
405       'configurations': {
406         'Release': {
407           'xcode_settings': {
408             # Use -Os to minimize the size of the installer tools.
409             'GCC_OPTIMIZATION_LEVEL': 's',
410           },
411         },
412       },
413     },
414   ],
415 }