# Copyright 2017 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.

import("//build_overrides/build.gni")

if (build_with_chromium || use_cobalt_customizations) {
  static_library("zip") {
    sources = [
      "zip.cc",
      "zip.h",
      "zip_internal.cc",
      "zip_internal.h",
      "zip_reader.cc",
      "zip_reader.h",
      "zip_writer.cc",
      "zip_writer.h",
    ]
    deps = [
      "//base",
      "//third_party/zlib:minizip",
    ]
  }

  static_library("compression_utils") {
    sources = [
      "compression_utils.cc",
      "compression_utils.h",
    ]
    deps = [
      ":compression_utils_portable",
      "//base",
      "//third_party/zlib",
    ]
  }
}

# This allows other users of Chromium's zlib library, but don't use Chromium's
# //base, to reuse some boilerplate code.
static_library("compression_utils_portable") {
  sources = [
    "compression_utils_portable.cc",
    "compression_utils_portable.h",
  ]
  deps = [
    "//third_party/zlib",
  ]
}
