Split fxbarcode build rules into fxbarcode/BUILD.gn.

Enable GN check for fxbarcode and make it pass.

Change-Id: I696a97b90113b65ae5c7f8aa18185328c4640251
Reviewed-on: https://pdfium-review.googlesource.com/c/43940
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/.gn b/.gn
index 59db446..0e52ba7 100644
--- a/.gn
+++ b/.gn
@@ -17,12 +17,12 @@
 }
 
 check_targets = [
+  "//fxbarcode/*",
   "//samples/*",
 
   # TODO(thestig): Work on these.
   #"//core/*",  # Need to split off.
   #"//fpdfsdk/*",  # Need to split off.
-  #"//fxbarcode/*",  # Need to split off.
   #"//fxjs/*",  # Need to split off.
   #"//testing/*",
   #"//testing/fuzzers/*",
diff --git a/BUILD.gn b/BUILD.gn
index 3e268dd..e65fb2d 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -923,7 +923,10 @@
     "core/fxcrt/xml/cfx_xmltext.h",
   ]
   configs += [ ":pdfium_core_config" ]
-  visibility += [ "third_party:*" ]
+  visibility += [
+    "fxbarcode:*",
+    "third_party:*",
+  ]
   deps = [
     "third_party:pdfium_base",
   ]
@@ -1685,140 +1688,6 @@
     configs += [ ":pdfium_core_config" ]
   }
 
-  jumbo_source_set("fxbarcode") {
-    sources = [
-      "fxbarcode/BC_Library.cpp",
-      "fxbarcode/BC_Library.h",
-      "fxbarcode/BC_TwoDimWriter.cpp",
-      "fxbarcode/BC_TwoDimWriter.h",
-      "fxbarcode/BC_UtilCodingConvert.cpp",
-      "fxbarcode/BC_UtilCodingConvert.h",
-      "fxbarcode/BC_Utils.cpp",
-      "fxbarcode/BC_Writer.cpp",
-      "fxbarcode/BC_Writer.h",
-      "fxbarcode/cbc_codabar.cpp",
-      "fxbarcode/cbc_codabar.h",
-      "fxbarcode/cbc_code128.cpp",
-      "fxbarcode/cbc_code128.h",
-      "fxbarcode/cbc_code39.cpp",
-      "fxbarcode/cbc_code39.h",
-      "fxbarcode/cbc_codebase.cpp",
-      "fxbarcode/cbc_codebase.h",
-      "fxbarcode/cbc_datamatrix.cpp",
-      "fxbarcode/cbc_datamatrix.h",
-      "fxbarcode/cbc_ean13.cpp",
-      "fxbarcode/cbc_ean13.h",
-      "fxbarcode/cbc_ean8.cpp",
-      "fxbarcode/cbc_ean8.h",
-      "fxbarcode/cbc_onecode.cpp",
-      "fxbarcode/cbc_onecode.h",
-      "fxbarcode/cbc_pdf417i.cpp",
-      "fxbarcode/cbc_pdf417i.h",
-      "fxbarcode/cbc_qrcode.cpp",
-      "fxbarcode/cbc_qrcode.h",
-      "fxbarcode/cbc_upca.cpp",
-      "fxbarcode/cbc_upca.h",
-      "fxbarcode/common/BC_CommonBitArray.cpp",
-      "fxbarcode/common/BC_CommonBitArray.h",
-      "fxbarcode/common/BC_CommonBitMatrix.cpp",
-      "fxbarcode/common/BC_CommonBitMatrix.h",
-      "fxbarcode/common/BC_CommonByteMatrix.cpp",
-      "fxbarcode/common/BC_CommonByteMatrix.h",
-      "fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp",
-      "fxbarcode/common/reedsolomon/BC_ReedSolomon.h",
-      "fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp",
-      "fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h",
-      "fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp",
-      "fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h",
-      "fxbarcode/datamatrix/BC_ASCIIEncoder.cpp",
-      "fxbarcode/datamatrix/BC_ASCIIEncoder.h",
-      "fxbarcode/datamatrix/BC_Base256Encoder.cpp",
-      "fxbarcode/datamatrix/BC_Base256Encoder.h",
-      "fxbarcode/datamatrix/BC_C40Encoder.cpp",
-      "fxbarcode/datamatrix/BC_C40Encoder.h",
-      "fxbarcode/datamatrix/BC_DataMatrixSymbolInfo144.cpp",
-      "fxbarcode/datamatrix/BC_DataMatrixSymbolInfo144.h",
-      "fxbarcode/datamatrix/BC_DataMatrixWriter.cpp",
-      "fxbarcode/datamatrix/BC_DataMatrixWriter.h",
-      "fxbarcode/datamatrix/BC_DefaultPlacement.cpp",
-      "fxbarcode/datamatrix/BC_DefaultPlacement.h",
-      "fxbarcode/datamatrix/BC_EdifactEncoder.cpp",
-      "fxbarcode/datamatrix/BC_EdifactEncoder.h",
-      "fxbarcode/datamatrix/BC_Encoder.cpp",
-      "fxbarcode/datamatrix/BC_Encoder.h",
-      "fxbarcode/datamatrix/BC_EncoderContext.cpp",
-      "fxbarcode/datamatrix/BC_EncoderContext.h",
-      "fxbarcode/datamatrix/BC_ErrorCorrection.cpp",
-      "fxbarcode/datamatrix/BC_ErrorCorrection.h",
-      "fxbarcode/datamatrix/BC_HighLevelEncoder.cpp",
-      "fxbarcode/datamatrix/BC_HighLevelEncoder.h",
-      "fxbarcode/datamatrix/BC_SymbolInfo.cpp",
-      "fxbarcode/datamatrix/BC_SymbolInfo.h",
-      "fxbarcode/datamatrix/BC_TextEncoder.cpp",
-      "fxbarcode/datamatrix/BC_TextEncoder.h",
-      "fxbarcode/datamatrix/BC_X12Encoder.cpp",
-      "fxbarcode/datamatrix/BC_X12Encoder.h",
-      "fxbarcode/oned/BC_OneDimWriter.cpp",
-      "fxbarcode/oned/BC_OneDimWriter.h",
-      "fxbarcode/oned/BC_OnedCodaBarWriter.cpp",
-      "fxbarcode/oned/BC_OnedCodaBarWriter.h",
-      "fxbarcode/oned/BC_OnedCode128Writer.cpp",
-      "fxbarcode/oned/BC_OnedCode128Writer.h",
-      "fxbarcode/oned/BC_OnedCode39Writer.cpp",
-      "fxbarcode/oned/BC_OnedCode39Writer.h",
-      "fxbarcode/oned/BC_OnedEAN13Writer.cpp",
-      "fxbarcode/oned/BC_OnedEAN13Writer.h",
-      "fxbarcode/oned/BC_OnedEAN8Writer.cpp",
-      "fxbarcode/oned/BC_OnedEAN8Writer.h",
-      "fxbarcode/oned/BC_OnedEANChecksum.cpp",
-      "fxbarcode/oned/BC_OnedEANChecksum.h",
-      "fxbarcode/oned/BC_OnedUPCAWriter.cpp",
-      "fxbarcode/oned/BC_OnedUPCAWriter.h",
-      "fxbarcode/pdf417/BC_PDF417.cpp",
-      "fxbarcode/pdf417/BC_PDF417.h",
-      "fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp",
-      "fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h",
-      "fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp",
-      "fxbarcode/pdf417/BC_PDF417BarcodeRow.h",
-      "fxbarcode/pdf417/BC_PDF417Compaction.cpp",
-      "fxbarcode/pdf417/BC_PDF417Compaction.h",
-      "fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp",
-      "fxbarcode/pdf417/BC_PDF417ErrorCorrection.h",
-      "fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp",
-      "fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h",
-      "fxbarcode/pdf417/BC_PDF417Writer.cpp",
-      "fxbarcode/pdf417/BC_PDF417Writer.h",
-      "fxbarcode/qrcode/BC_QRCodeWriter.cpp",
-      "fxbarcode/qrcode/BC_QRCodeWriter.h",
-      "fxbarcode/qrcode/BC_QRCoder.cpp",
-      "fxbarcode/qrcode/BC_QRCoder.h",
-      "fxbarcode/qrcode/BC_QRCoderBitVector.cpp",
-      "fxbarcode/qrcode/BC_QRCoderBitVector.h",
-      "fxbarcode/qrcode/BC_QRCoderECBlocks.cpp",
-      "fxbarcode/qrcode/BC_QRCoderECBlocks.h",
-      "fxbarcode/qrcode/BC_QRCoderECBlocksData.cpp",
-      "fxbarcode/qrcode/BC_QRCoderECBlocksData.h",
-      "fxbarcode/qrcode/BC_QRCoderEncoder.cpp",
-      "fxbarcode/qrcode/BC_QRCoderEncoder.h",
-      "fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp",
-      "fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h",
-      "fxbarcode/qrcode/BC_QRCoderMaskUtil.cpp",
-      "fxbarcode/qrcode/BC_QRCoderMaskUtil.h",
-      "fxbarcode/qrcode/BC_QRCoderMatrixUtil.cpp",
-      "fxbarcode/qrcode/BC_QRCoderMatrixUtil.h",
-      "fxbarcode/qrcode/BC_QRCoderMode.cpp",
-      "fxbarcode/qrcode/BC_QRCoderMode.h",
-      "fxbarcode/qrcode/BC_QRCoderVersion.cpp",
-      "fxbarcode/qrcode/BC_QRCoderVersion.h",
-      "fxbarcode/utils.h",
-    ]
-    deps = [
-      ":fxcrt",
-      "third_party:bigint",
-    ]
-    configs += [ ":pdfium_core_config" ]
-  }
-
   group("xfa") {
     deps = [
       ":xfa_fde",
@@ -2007,9 +1876,9 @@
       "xfa/fwl/theme/cfwl_widgettp.h",
     ]
     deps = [
-      ":fxbarcode",
       ":fxcrt",
       ":xfa_fgas",
+      "fxbarcode",
     ]
     configs += [
       ":pdfium_core_config",
diff --git a/fxbarcode/BUILD.gn b/fxbarcode/BUILD.gn
new file mode 100644
index 0000000..88235be
--- /dev/null
+++ b/fxbarcode/BUILD.gn
@@ -0,0 +1,144 @@
+# 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("//build/config/jumbo.gni")
+import("../pdfium.gni")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("fxbarcode") {
+  sources = [
+    "BC_Library.cpp",
+    "BC_Library.h",
+    "BC_TwoDimWriter.cpp",
+    "BC_TwoDimWriter.h",
+    "BC_UtilCodingConvert.cpp",
+    "BC_UtilCodingConvert.h",
+    "BC_Utils.cpp",
+    "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_onecode.cpp",
+    "cbc_onecode.h",
+    "cbc_pdf417i.cpp",
+    "cbc_pdf417i.h",
+    "cbc_qrcode.cpp",
+    "cbc_qrcode.h",
+    "cbc_upca.cpp",
+    "cbc_upca.h",
+    "common/BC_CommonBitArray.cpp",
+    "common/BC_CommonBitArray.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_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_PDF417Compaction.cpp",
+    "pdf417/BC_PDF417Compaction.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",
+    "utils.h",
+  ]
+  deps = [
+    "../:fxcrt",
+    "../:fxge",
+    "../third_party:bigint",
+  ]
+  configs += [ "../:pdfium_core_config" ]
+  visibility = [ "../*" ]
+}