# 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")

source_set("pwl") {
  sources = [
    "cpwl_button.cpp",
    "cpwl_button.h",
    "cpwl_caret.cpp",
    "cpwl_caret.h",
    "cpwl_combo_box.cpp",
    "cpwl_combo_box.h",
    "cpwl_edit.cpp",
    "cpwl_edit.h",
    "cpwl_edit_ctrl.cpp",
    "cpwl_edit_ctrl.h",
    "cpwl_edit_impl.cpp",
    "cpwl_edit_impl.h",
    "cpwl_icon.cpp",
    "cpwl_icon.h",
    "cpwl_list_box.cpp",
    "cpwl_list_box.h",
    "cpwl_list_impl.cpp",
    "cpwl_list_impl.h",
    "cpwl_scroll_bar.cpp",
    "cpwl_scroll_bar.h",
    "cpwl_special_button.cpp",
    "cpwl_special_button.h",
    "cpwl_wnd.cpp",
    "cpwl_wnd.h",
    "ipwl_systemhandler.h",
  ]
  configs += [ "../../:pdfium_core_config" ]
  deps = [
    "../../:pdfium_public_headers",
    "../../constants",
    "../../core/fpdfapi/font",
    "../../core/fpdfapi/render",
    "../../core/fpdfdoc",
    "../../core/fxcrt",
    "../../core/fxge",
  ]
  visibility = [ "../../*" ]
}

pdfium_embeddertest_source_set("embeddertests") {
  sources = [
    "cpwl_combo_box_embeddertest.cpp",
    "cpwl_edit_embeddertest.cpp",
    "cpwl_special_button_embeddertest.cpp",
  ]
  deps = [
    ":pwl",
    "../:fpdfsdk",
    "../formfiller",
  ]
  pdfium_root_dir = "../../"
}
