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

group("freetype_common") {
  public_deps = []
  if (pdf_bundle_freetype) {
    public_deps += [ "third_party:fx_freetype" ]
  } else {
    public_deps += [ "//build/config/freetype" ]
  }
}

config("pdfium_common_config") {
  cflags = []
  ldflags = []
  include_dirs = [ "." ]
  defines = [
    "OPJ_STATIC",
    "PNG_PREFIX",
    "PNG_USE_READ_MACROS",
  ]

  if (pdf_enable_click_logging) {
    defines += [ "PDF_ENABLE_CLICK_LOGGING" ]
  }

  if (pdf_use_skia) {
    defines += [ "_SKIA_SUPPORT_" ]
  }

  if (pdf_use_skia_paths) {
    defines += [ "_SKIA_SUPPORT_PATHS_" ]
  }

  if (is_win) {
    # Assume UTF-8 by default to avoid code page dependencies.
    cflags += [ "/utf-8" ]
  }
}

config("pdfium_public_config") {
  defines = []

  if (pdf_enable_v8) {
    defines += [ "PDF_ENABLE_V8" ]

    if (pdf_enable_xfa) {
      defines += [ "PDF_ENABLE_XFA" ]
      if (pdf_enable_xfa_bmp) {
        defines += [ "PDF_ENABLE_XFA_BMP" ]
      }
      if (pdf_enable_xfa_gif) {
        defines += [ "PDF_ENABLE_XFA_GIF" ]
      }
      if (pdf_enable_xfa_png) {
        defines += [ "PDF_ENABLE_XFA_PNG" ]
      }
      if (pdf_enable_xfa_tiff) {
        defines += [ "PDF_ENABLE_XFA_TIFF" ]
      }
    }
  }

  if (pdf_use_win32_gdi) {
    defines += [ "PDFIUM_PRINT_TEXT_WITH_GDI" ]
  }
}

config("pdfium_core_config") {
  cflags = []
  configs = [
    ":pdfium_common_config",
    ":pdfium_public_config",
  ]
  defines = []
  if (is_clang) {
    cflags += [ "-Wshadow" ]
  }
  if (is_linux) {
    if (current_cpu == "x64") {
      defines += [ "_FX_CPU_=_FX_X64_" ]
      cflags += [ "-fPIC" ]
    } else if (current_cpu == "x86") {
      defines += [ "_FX_CPU_=_FX_X86_" ]
    }
  }
  if (is_win) {
    cflags += [
      "/wd4324",
      "/wd4577",
    ]
  }
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}

jumbo_source_set("pdfium_public_headers") {
  sources = [
    "public/cpp/fpdf_deleters.h",
    "public/cpp/fpdf_scopers.h",
    "public/fpdf_annot.h",
    "public/fpdf_attachment.h",
    "public/fpdf_catalog.h",
    "public/fpdf_dataavail.h",
    "public/fpdf_doc.h",
    "public/fpdf_edit.h",
    "public/fpdf_ext.h",
    "public/fpdf_flatten.h",
    "public/fpdf_formfill.h",
    "public/fpdf_fwlevent.h",
    "public/fpdf_ppo.h",
    "public/fpdf_progressive.h",
    "public/fpdf_save.h",
    "public/fpdf_searchex.h",
    "public/fpdf_structtree.h",
    "public/fpdf_sysfontinfo.h",
    "public/fpdf_text.h",
    "public/fpdf_transformpage.h",
    "public/fpdfview.h",
  ]

  public_configs = [ ":pdfium_public_config" ]
}

jumbo_static_library("pdfium") {
  sources = [
    "fpdfsdk/fpdf_annot.cpp",
    "fpdfsdk/fpdf_attachment.cpp",
    "fpdfsdk/fpdf_catalog.cpp",
    "fpdfsdk/fpdf_dataavail.cpp",
    "fpdfsdk/fpdf_doc.cpp",
    "fpdfsdk/fpdf_editimg.cpp",
    "fpdfsdk/fpdf_editpage.cpp",
    "fpdfsdk/fpdf_editpath.cpp",
    "fpdfsdk/fpdf_edittext.cpp",
    "fpdfsdk/fpdf_ext.cpp",
    "fpdfsdk/fpdf_flatten.cpp",
    "fpdfsdk/fpdf_formfill.cpp",
    "fpdfsdk/fpdf_ppo.cpp",
    "fpdfsdk/fpdf_progressive.cpp",
    "fpdfsdk/fpdf_save.cpp",
    "fpdfsdk/fpdf_searchex.cpp",
    "fpdfsdk/fpdf_structtree.cpp",
    "fpdfsdk/fpdf_sysfontinfo.cpp",
    "fpdfsdk/fpdf_text.cpp",
    "fpdfsdk/fpdf_transformpage.cpp",
    "fpdfsdk/fpdf_view.cpp",
  ]

  libs = []
  configs += [ ":pdfium_core_config" ]

  deps = [
    ":pdfium_public_headers",
    "constants",
    "core/fdrm",
    "core/fpdfapi",
    "core/fpdfapi/edit",
    "core/fpdfapi/font",
    "core/fpdfapi/page",
    "core/fpdfapi/parser",
    "core/fpdfapi/render",
    "core/fpdfdoc",
    "core/fpdftext",
    "core/fxcodec",
    "core/fxcrt",
    "core/fxge",
    "fpdfsdk",
    "fpdfsdk/formfiller",
    "fxjs",
    "third_party:pdfium_base",
    "third_party:skia_shared",
  ]

  public_deps = [
    ":pdfium_public_headers",
    "core/fxcrt",
  ]

  if (pdf_enable_xfa) {
    deps += [
      "fpdfsdk/fpdfxfa",
      "fxbarcode",
      "xfa/fxfa",
      "xfa/fxfa/parser",
    ]
  }

  if (is_win) {
    libs += [
      "advapi32.lib",
      "gdi32.lib",
      "user32.lib",
    ]
  }

  if (is_mac) {
    libs += [
      "AppKit.framework",
      "CoreFoundation.framework",
    ]
  }

  if (pdf_is_complete_lib) {
    complete_static_lib = true
    configs -= [ "//build/config/compiler:thin_archive" ]
  }
}

# Targets below this are only visible within this file (and to the
# top-level gn_visibility target used to help gn_all build everything).
visibility = [
  ":*",
  "//:gn_visibility",
]

group("pdfium_unittest_deps") {
  testonly = true
  public_deps = [
    "core/fxcrt",
    "testing:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
  visibility += [
    "core/*",
    "fpdfsdk/*",
    "fxbarcode/*",
    "fxjs/*",
    "xfa/*",
  ]
}

test("pdfium_unittests") {
  testonly = true
  sources = [
    "testing/unit_test_main.cpp",
  ]
  deps = [
    "core/fdrm:unittests",
    "core/fpdfapi/edit:unittests",
    "core/fpdfapi/font:unittests",
    "core/fpdfapi/page:unittests",
    "core/fpdfapi/parser:unittests",
    "core/fpdfapi/render:unittests",
    "core/fpdfdoc:unittests",
    "core/fpdftext:unittests",
    "core/fxcodec:unittests",
    "core/fxcrt",
    "core/fxcrt:unittests",
    "core/fxge:unittests",
    "fpdfsdk:unittests",
    "testing:test_support",
    "testing:unit_test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
  configs += [ ":pdfium_core_config" ]

  if (is_android) {
    use_raw_android_executable = true
  }

  if (pdf_enable_v8) {
    configs += [ "//v8:external_startup_data" ]
    deps += [
      "fxjs:unittests",
      "//v8",
    ]
  }

  if (pdf_enable_xfa) {
    deps += [
      "fxbarcode:unittests",
      "xfa/fde:unittests",
      "xfa/fgas:unittests",
      "xfa/fgas/layout:unittests",
      "xfa/fwl:unittests",
      "xfa/fxfa:unittests",
      "xfa/fxfa/fm2js:unittests",
      "xfa/fxfa/parser:unittests",
    ]
  }
}

group("pdfium_embeddertest_deps") {
  testonly = true
  public_deps = [
    ":pdfium_public_headers",
    "core/fxcrt",
    "testing:embedder_test_support",
    "testing:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
  visibility += [
    "core/*",
    "fpdfsdk/*",
    "fxjs/*",
    "xfa/*",
  ]
}

test("pdfium_embeddertests") {
  testonly = true
  sources = [
    "testing/embedder_test_main.cpp",
  ]
  deps = [
    ":pdfium",
    "core/fpdfapi/edit:embeddertests",
    "core/fpdfapi/page:embeddertests",
    "core/fpdfapi/parser:embeddertests",
    "core/fpdfapi/render:embeddertests",
    "core/fxcodec:embeddertests",
    "core/fxge:embeddertests",
    "fpdfsdk:embeddertests",
    "fpdfsdk/pwl:embeddertests",
    "testing:test_support",
    "testing/image_diff",
    "//testing/gmock",
    "//testing/gtest",
  ]
  include_dirs = [ "testing/gmock/include" ]
  configs += [ ":pdfium_core_config" ]

  if (is_android) {
    ignore_all_data_deps = true
    use_raw_android_executable = true
  }

  if (pdf_enable_v8) {
    deps += [
      "fxjs:embeddertests",
      "//v8",
    ]
    configs += [ "//v8:external_startup_data" ]
  }

  if (pdf_enable_xfa) {
    deps += [
      "xfa/fwl:embeddertests",
      "xfa/fxfa/parser:embeddertests",
    ]
  }
}

executable("pdfium_diff") {
  testonly = true
  sources = [
    "testing/image_diff/image_diff.cpp",
  ]
  deps = [
    ":pdfium",
    "testing/image_diff",
    "//build/win:default_exe_manifest",
  ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":pdfium_core_config" ]
}

if (pdf_is_standalone) {
  jumbo_source_set("samples") {
    testonly = true
    deps = [
      "//samples",
    ]
  }

  group("fuzzers") {
    testonly = true
    deps = [
      "//testing/fuzzers",
    ]
  }
}

group("pdfium_all") {
  testonly = true
  deps = [
    ":pdfium_diff",
    ":pdfium_embeddertests",
    ":pdfium_unittests",
  ]
  if (pdf_is_standalone) {
    deps += [
      ":fuzzers",
      ":samples",
    ]
  }
}
