# 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("css") {
  sources = [
    "cfx_css.h",
    "cfx_csscolorvalue.cpp",
    "cfx_csscolorvalue.h",
    "cfx_csscomputedstyle.cpp",
    "cfx_csscomputedstyle.h",
    "cfx_csscustomproperty.cpp",
    "cfx_csscustomproperty.h",
    "cfx_cssdata.cpp",
    "cfx_cssdata.h",
    "cfx_cssdeclaration.cpp",
    "cfx_cssdeclaration.h",
    "cfx_cssenumvalue.cpp",
    "cfx_cssenumvalue.h",
    "cfx_cssexttextbuf.cpp",
    "cfx_cssexttextbuf.h",
    "cfx_cssnumbervalue.cpp",
    "cfx_cssnumbervalue.h",
    "cfx_csspropertyholder.cpp",
    "cfx_csspropertyholder.h",
    "cfx_cssrulecollection.cpp",
    "cfx_cssrulecollection.h",
    "cfx_cssselector.cpp",
    "cfx_cssselector.h",
    "cfx_cssstringvalue.cpp",
    "cfx_cssstringvalue.h",
    "cfx_cssstylerule.cpp",
    "cfx_cssstylerule.h",
    "cfx_cssstyleselector.cpp",
    "cfx_cssstyleselector.h",
    "cfx_cssstylesheet.cpp",
    "cfx_cssstylesheet.h",
    "cfx_csssyntaxparser.cpp",
    "cfx_csssyntaxparser.h",
    "cfx_csstextbuf.cpp",
    "cfx_csstextbuf.h",
    "cfx_cssvalue.cpp",
    "cfx_cssvalue.h",
    "cfx_cssvaluelist.cpp",
    "cfx_cssvaluelist.h",
    "cfx_cssvaluelistparser.cpp",
    "cfx_cssvaluelistparser.h",
  ]
  deps = [
    "../",
    "../../fxge",
  ]
  configs += [ "../../../:pdfium_core_config" ]
  visibility = [ "../../../*" ]
}
