# Copyright 2017 The Crashpad Authors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. { 'includes': [ '../../build/crashpad_dependencies.gypi', ], 'conditions': [ ['1==1', { # Defer processing until crashpad_dependencies is set 'variables': { 'conditions': [ ['crashpad_dependencies=="external"', { 'zlib_source%': 'external', }, 'OS!="win"', { # Use the system zlib by default where available, as it is on most # platforms. Windows does not have a system zlib, so use “embedded” # which directs the build to use the source code in the zlib # subdirectory. 'zlib_source%': 'system', }, { 'zlib_source%': 'embedded', }], ], }, }], ], 'targets': [ { 'target_name': 'zlib', 'conditions': [ ['zlib_source=="system"', { 'type': 'none', 'direct_dependent_settings': { 'defines': [ 'CRASHPAD_ZLIB_SOURCE_SYSTEM', ], }, 'link_settings': { 'conditions': [ ['OS=="mac"', { 'libraries': [ '$(SDKROOT)/usr/lib/libz.dylib', ], }, { 'libraries': [ '-lz', ], }], ], }, }], ['zlib_source=="embedded"', { 'type': 'static_library', 'include_dirs': [ 'zlib', ], 'defines': [ 'CRASHPAD_ZLIB_SOURCE_EMBEDDED', 'HAVE_STDARG_H', ], 'direct_dependent_settings': { 'include_dirs': [ 'zlib', ], 'defines': [ 'CRASHPAD_ZLIB_SOURCE_EMBEDDED', ], }, 'sources': [ 'zlib/adler32.c', 'zlib/compress.c', 'zlib/crc32.c', 'zlib/crc32.h', 'zlib/crc_folding.c', 'zlib/deflate.c', 'zlib/deflate.h', 'zlib/fill_window_sse.c', 'zlib/gzclose.c', 'zlib/gzguts.h', 'zlib/gzlib.c', 'zlib/gzread.c', 'zlib/gzwrite.c', 'zlib/infback.c', 'zlib/inffast.c', 'zlib/inffast.h', 'zlib/inffixed.h', 'zlib/inflate.c', 'zlib/inflate.h', 'zlib/inftrees.c', 'zlib/inftrees.h', 'zlib/names.h', 'zlib/simd_stub.c', 'zlib/trees.c', 'zlib/trees.h', 'zlib/uncompr.c', 'zlib/x86.c', 'zlib/x86.h', 'zlib/zconf.h', 'zlib/zlib.h', 'zlib/zutil.c', 'zlib/zutil.h', 'zlib_crashpad.h', ], 'conditions': [ ['target_arch=="ia32" or target_arch=="x64"', { 'sources!': [ 'zlib/simd_stub.c', ], 'cflags': [ '-msse4.2', '-mpclmul', ], 'xcode_settings': { 'OTHER_CFLAGS': [ '-msse4.2', '-mpclmul', ], }, }, { 'sources!': [ 'zlib/crc_folding.c', 'zlib/fill_window_sse.c', 'zlib/x86.c', 'zlib/x86.h', ], }], ['OS!="win"', { 'defines': [ 'HAVE_HIDDEN', 'HAVE_UNISTD_H', ], }, { 'msvs_disabled_warnings': [ 4131, # uses old-style declarator 4244, # conversion from 't1' to 't2', possible loss of data 4245, # conversion from 't1' to 't2', signed/unsigned mismatch 4267, # conversion from 'size_t' to 't', possible loss of data 4324, # structure was padded due to alignment specifier ], }], ], }], ['zlib_source=="external"', { 'type': 'none', 'direct_dependent_settings': { 'defines': [ 'CRASHPAD_ZLIB_SOURCE_EXTERNAL', ], }, 'dependencies': [ '../../../../zlib/zlib.gyp:zlib', ], }], ], }, ], }