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

config("lzma_sdk_config") {
  include_dirs = [ "." ]
}

# Must be in a config because of how GN orders flags (otherwise -Wall will
# appear after this, and turn it back on).
config("clang_warnings") {
  if (is_clang) {
    # Upstream uses self-assignment to avoid warnings.
    cflags = [ "-Wno-self-assign" ]
  }
}

static_library("lzma_sdk") {
  sources = [
    "7z.h",
    "7zAlloc.c",
    "7zAlloc.h",
    "7zArcIn.c",
    "7zBuf.c",
    "7zBuf.h",
    "7zCrc.c",
    "7zCrc.h",
    "7zCrcOpt.c",
    "7zDec.c",
    "7zFile.c",
    "7zFile.h",
    "7zStream.c",
    "7zTypes.h",
    "Alloc.c",
    "Alloc.h",
    "Bcj2.c",
    "Bcj2.h",
    "Bra.c",
    "Bra.h",
    "Bra86.c",
    "Compiler.h",
    "CpuArch.c",
    "CpuArch.h",
    "Delta.c",
    "Delta.h",
    "LzFind.c",
    "LzFind.h",
    "LzHash.h",
    "Lzma2Dec.c",
    "Lzma2Dec.h",
    "LzmaDec.c",
    "LzmaDec.h",
    "LzmaEnc.c",
    "LzmaEnc.h",
    "LzmaLib.c",
    "LzmaLib.h",
    "Precomp.h",
  ]

  defines = [
    "_7ZIP_ST",
    "_7Z_NO_METHODS_FILTERS",
    "_LZMA_PROB32",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [
    "//build/config/compiler:no_chromium_code",

    # Must be after no_chromium_code for warning flags to be ordered correctly.
    ":clang_warnings",
  ]
  public_configs = [ ":lzma_sdk_config" ]
}
