# Copyright 2018 The PDFium 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("../pdfium.gni")
import("../testing/test.gni")

assert(pdf_enable_xfa)

source_set("fxbarcode") {
  sources = [
    "BC_Library.cpp",
    "BC_Library.h",
    "BC_TwoDimWriter.cpp",
    "BC_TwoDimWriter.h",
    "BC_Writer.cpp",
    "BC_Writer.h",
    "cbc_codabar.cpp",
    "cbc_codabar.h",
    "cbc_code128.cpp",
    "cbc_code128.h",
    "cbc_code39.cpp",
    "cbc_code39.h",
    "cbc_codebase.cpp",
    "cbc_codebase.h",
    "cbc_datamatrix.cpp",
    "cbc_datamatrix.h",
    "cbc_ean13.cpp",
    "cbc_ean13.h",
    "cbc_ean8.cpp",
    "cbc_ean8.h",
    "cbc_eancode.cpp",
    "cbc_eancode.h",
    "cbc_onecode.cpp",
    "cbc_onecode.h",
    "cbc_pdf417i.cpp",
    "cbc_pdf417i.h",
    "cbc_qrcode.cpp",
    "cbc_qrcode.h",
    "cbc_upca.cpp",
    "cbc_upca.h",
    "cfx_barcode.cpp",
    "cfx_barcode.h",
    "common/BC_CommonBitMatrix.cpp",
    "common/BC_CommonBitMatrix.h",
    "common/BC_CommonByteMatrix.cpp",
    "common/BC_CommonByteMatrix.h",
    "common/reedsolomon/BC_ReedSolomon.cpp",
    "common/reedsolomon/BC_ReedSolomon.h",
    "common/reedsolomon/BC_ReedSolomonGF256.cpp",
    "common/reedsolomon/BC_ReedSolomonGF256.h",
    "common/reedsolomon/BC_ReedSolomonGF256Poly.cpp",
    "common/reedsolomon/BC_ReedSolomonGF256Poly.h",
    "datamatrix/BC_ASCIIEncoder.cpp",
    "datamatrix/BC_ASCIIEncoder.h",
    "datamatrix/BC_Base256Encoder.cpp",
    "datamatrix/BC_Base256Encoder.h",
    "datamatrix/BC_C40Encoder.cpp",
    "datamatrix/BC_C40Encoder.h",
    "datamatrix/BC_DataMatrixSymbolInfo144.cpp",
    "datamatrix/BC_DataMatrixSymbolInfo144.h",
    "datamatrix/BC_DataMatrixWriter.cpp",
    "datamatrix/BC_DataMatrixWriter.h",
    "datamatrix/BC_DefaultPlacement.cpp",
    "datamatrix/BC_DefaultPlacement.h",
    "datamatrix/BC_EdifactEncoder.cpp",
    "datamatrix/BC_EdifactEncoder.h",
    "datamatrix/BC_Encoder.cpp",
    "datamatrix/BC_Encoder.h",
    "datamatrix/BC_EncoderContext.cpp",
    "datamatrix/BC_EncoderContext.h",
    "datamatrix/BC_ErrorCorrection.cpp",
    "datamatrix/BC_ErrorCorrection.h",
    "datamatrix/BC_HighLevelEncoder.cpp",
    "datamatrix/BC_HighLevelEncoder.h",
    "datamatrix/BC_SymbolInfo.cpp",
    "datamatrix/BC_SymbolInfo.h",
    "datamatrix/BC_TextEncoder.cpp",
    "datamatrix/BC_TextEncoder.h",
    "datamatrix/BC_X12Encoder.cpp",
    "datamatrix/BC_X12Encoder.h",
    "oned/BC_OneDimWriter.cpp",
    "oned/BC_OneDimWriter.h",
    "oned/BC_OnedCodaBarWriter.cpp",
    "oned/BC_OnedCodaBarWriter.h",
    "oned/BC_OnedCode128Writer.cpp",
    "oned/BC_OnedCode128Writer.h",
    "oned/BC_OnedCode39Writer.cpp",
    "oned/BC_OnedCode39Writer.h",
    "oned/BC_OnedEAN13Writer.cpp",
    "oned/BC_OnedEAN13Writer.h",
    "oned/BC_OnedEAN8Writer.cpp",
    "oned/BC_OnedEAN8Writer.h",
    "oned/BC_OnedEANChecksum.cpp",
    "oned/BC_OnedEANChecksum.h",
    "oned/BC_OnedEANWriter.cpp",
    "oned/BC_OnedEANWriter.h",
    "oned/BC_OnedUPCAWriter.cpp",
    "oned/BC_OnedUPCAWriter.h",
    "pdf417/BC_PDF417.cpp",
    "pdf417/BC_PDF417.h",
    "pdf417/BC_PDF417BarcodeMatrix.cpp",
    "pdf417/BC_PDF417BarcodeMatrix.h",
    "pdf417/BC_PDF417BarcodeRow.cpp",
    "pdf417/BC_PDF417BarcodeRow.h",
    "pdf417/BC_PDF417ErrorCorrection.cpp",
    "pdf417/BC_PDF417ErrorCorrection.h",
    "pdf417/BC_PDF417HighLevelEncoder.cpp",
    "pdf417/BC_PDF417HighLevelEncoder.h",
    "pdf417/BC_PDF417Writer.cpp",
    "pdf417/BC_PDF417Writer.h",
    "qrcode/BC_QRCodeWriter.cpp",
    "qrcode/BC_QRCodeWriter.h",
    "qrcode/BC_QRCoder.cpp",
    "qrcode/BC_QRCoder.h",
    "qrcode/BC_QRCoderBitVector.cpp",
    "qrcode/BC_QRCoderBitVector.h",
    "qrcode/BC_QRCoderECBlocks.cpp",
    "qrcode/BC_QRCoderECBlocks.h",
    "qrcode/BC_QRCoderECBlocksData.cpp",
    "qrcode/BC_QRCoderECBlocksData.h",
    "qrcode/BC_QRCoderEncoder.cpp",
    "qrcode/BC_QRCoderEncoder.h",
    "qrcode/BC_QRCoderErrorCorrectionLevel.cpp",
    "qrcode/BC_QRCoderErrorCorrectionLevel.h",
    "qrcode/BC_QRCoderMaskUtil.cpp",
    "qrcode/BC_QRCoderMaskUtil.h",
    "qrcode/BC_QRCoderMatrixUtil.cpp",
    "qrcode/BC_QRCoderMatrixUtil.h",
    "qrcode/BC_QRCoderMode.cpp",
    "qrcode/BC_QRCoderMode.h",
    "qrcode/BC_QRCoderVersion.cpp",
    "qrcode/BC_QRCoderVersion.h",
  ]
  deps = [
    "../core/fxcrt",
    "../core/fxge",
    "../third_party:bigint",
  ]
  configs += [ "../:pdfium_strict_config" ]
  visibility = [ "../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cbc_pdf417i_unittest.cpp",
    "cfx_barcode_unittest.cpp",
    "datamatrix/BC_DataMatrixWriter_unittest.cpp",
    "oned/BC_OnedCodaBarWriter_unittest.cpp",
    "oned/BC_OnedCode128Writer_unittest.cpp",
    "oned/BC_OnedCode39Writer_unittest.cpp",
    "oned/BC_OnedEAN13Writer_unittest.cpp",
    "oned/BC_OnedEAN8Writer_unittest.cpp",
    "oned/BC_OnedUPCAWriter_unittest.cpp",
    "pdf417/BC_PDF417HighLevelEncoder_unittest.cpp",
    "pdf417/BC_PDF417Writer_unittest.cpp",
    "qrcode/BC_QRCodeWriter_unittest.cpp",
  ]
  deps = [
    ":fxbarcode",
    "../core/fxge",
  ]
  pdfium_root_dir = "../"
}
