blob: cb34af32f63898eb8fb9d3581019583ffb9169b0 [file] [log] [blame]
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'variables': {
'optimize_target_for_speed': 1,
'conditions': [
[ 'OS == "none"', {
# Because we have a patched zlib, we cannot use the system libz.
# TODO(pvalchev): OpenBSD is purposefully left out, as the system
# zlib brings up an incompatibility that breaks rendering.
'use_system_zlib%': 1,
}, {
'use_system_zlib%': 0,
}],
],
'use_system_minizip%': 0,
'use_x86_x64_optimizations%': 0,
'use_arm_neon_optimizations%': 0,
},
'targets': [
{
'target_name': 'zlib',
'type': 'static_library',
'conditions': [
['use_system_zlib==0', {
'sources': [
'adler32.c',
'chromeconf.h',
'compress.c',
'crc32.c',
'crc32.h',
'deflate.c',
'deflate.h',
'infback.c',
'inffast.c',
'inffast.h',
'inffixed.h',
'inflate.h',
'inftrees.c',
'inftrees.h',
'trees.c',
'trees.h',
'uncompr.c',
'x86.h',
'zconf.h',
'zlib.h',
'zutil.c',
'zutil.h',
],
'include_dirs': [
'.',
],
'all_dependent_settings': {
'defines': [
# To prevent Zlib ever from redefining const keyword in zconf.h
'STDC'
]
},
'direct_dependent_settings': {
'include_dirs': [
'.',
],
},
'defines': [
'ZLIB_IMPLEMENTATION',
],
'conditions': [
['OS!="win"', {
'product_name': 'chrome_zlib',
}],
['OS=="android"', {
'toolsets': ['target', 'host'],
}],
['OS=="starboard"', {
'sources!': [
'gzclose.c',
'gzguts.h',
'gzlib.c',
'gzread.c',
'gzwrite.c',
],
}],
['use_x86_x64_optimizations==1', {
# TODO: Enable optimizaitons for x86_x64.
'sources': [],
}, {
'sources': [
'simd_stub.c',
],
}],
['use_arm_neon_optimizations==1', {
# TODO: Enable optimizaitons for x86_x64.
'sources': [],
}],
['use_x86_x64_optimizations==0 and use_arm_neon_optimizations==0', {
'sources': [
'inflate.c',
],
}],
],
}, {
'direct_dependent_settings': {
'defines': [
'USE_SYSTEM_ZLIB',
],
},
'defines': [
'USE_SYSTEM_ZLIB',
],
'link_settings': {
'libraries': [
'-lz',
],
},
}],
],
},
{
'target_name': 'minizip',
'type': 'static_library',
'conditions': [
['use_system_minizip==0', {
'sources': [
'contrib/minizip/ioapi.c',
'contrib/minizip/ioapi.h',
'contrib/minizip/iostarboard.c',
'contrib/minizip/iostarboard.h',
'contrib/minizip/iowin32.c',
'contrib/minizip/iowin32.h',
'contrib/minizip/unzip.c',
'contrib/minizip/unzip.h',
'contrib/minizip/zip.c',
'contrib/minizip/zip.h',
],
'include_dirs': [
'.',
'../..',
],
'direct_dependent_settings': {
'include_dirs': [
'.',
],
},
'conditions': [
['OS!="win"', {
'sources!': [
'contrib/minizip/iowin32.c'
],
}],
['OS=="android"', {
'toolsets': ['target', 'host'],
}],
],
}, {
'direct_dependent_settings': {
'defines': [
'USE_SYSTEM_MINIZIP',
],
},
'defines': [
'USE_SYSTEM_MINIZIP',
],
'link_settings': {
'libraries': [
'-lminizip',
],
},
}],
['OS in ["mac", "ios", "android"] or os_bsd==1 or target_arch in ["ps3", "wiiu"]', {
# Mac, Android and the BSDs don't have fopen64, ftello64, or
# fseeko64. We use fopen, ftell, and fseek instead on these
# systems.
'defines': [
'USE_FILE32API'
],
}],
['clang==1', {
'xcode_settings': {
'WARNING_CFLAGS': [
# zlib uses `if ((a == b))` for some reason.
'-Wno-parentheses-equality',
],
},
'cflags': [
'-Wno-parentheses-equality',
],
}],
],
},
{
'target_name': 'zip',
'type': 'static_library',
'sources': [
'google/zip.cc',
'google/zip.h',
'google/zip_internal.cc',
'google/zip_internal.h',
'google/zip_reader.cc',
'google/zip_reader.h',
'google/zip_writer.cc',
'google/zip_writer.h',
],
'dependencies': [
'<(DEPTH)/base/base.gyp:base',
'<(DEPTH)/third_party/zlib/zlib.gyp:minizip',
],
},
],
}