# Copyright (c) 2006-2008 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.

__doc__ = """
Configuration for building zlib.lib / libzlib.a.
"""

Import('env')

if env.WantSystemLib('zlib'):
  env.Append(ZLIB_LIB = ['z'])
  Return()

env = env.Clone()

env.Append(
    ZLIB_LIB = ['zlib'],
)

if env['PLATFORM'] == 'win32':
  env.Append(
      CCFLAGS = [
          '/TC',
          '/wd4800',
      ],
  )

input_files = [
    'adler32.c',
    'compress.c',
    'crc32.c',
    'deflate.c',
    'gzio.c',
    'infback.c',
    'inffast.c',
    'inflate.c',
    'inftrees.c',
    'trees.c',
    'uncompr.c',
    'zutil.c',
]

env.ChromeStaticLibrary('zlib', input_files)
