# Copyright 2018 The PDFium Authors
# 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("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_cssinputtextbuf.cpp",
    "cfx_cssinputtextbuf.h",
    "cfx_cssnumbervalue.cpp",
    "cfx_cssnumbervalue.h",
    "cfx_cssoutputtextbuf.cpp",
    "cfx_cssoutputtextbuf.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_cssvalue.cpp",
    "cfx_cssvalue.h",
    "cfx_cssvaluelist.cpp",
    "cfx_cssvaluelist.h",
    "cfx_cssvaluelistparser.cpp",
    "cfx_cssvaluelistparser.h",
  ]
  configs += [
    "../../../:pdfium_strict_config",
    "../../../:pdfium_noshorten_config",
  ]
  deps = [
    "../",
    "../../fxge",
  ]
  visibility = [ "../../../*" ]
}

pdfium_unittest_source_set("unittests") {
  sources = [
    "cfx_cssdata_unittest.cpp",
    "cfx_cssdeclaration_unittest.cpp",
    "cfx_cssstylesheet_unittest.cpp",
    "cfx_csssyntaxparser_unittest.cpp",
    "cfx_cssvaluelistparser_unittest.cpp",
  ]
  pdfium_root_dir = "../../../"
  deps = [ ":css" ]
}
