# Copyright 2014 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/freetype/freetype.gni") import("//third_party/harfbuzz-ng/harfbuzz.gni") import("//third_party/libjpeg.gni") import("//build/config/features.gni") if (!use_qt) { assert(!is_ios, "This is not used on iOS, don't drag it in unintentionally") } if (use_system_libjpeg) { import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") pkg_config("system_libjpeg") { packages = [ "libjpeg" ] } shim_headers("libjpeg_shim") { root_path = "libjpeg_turbo" headers = [ "jpeglib.h" ] } source_set("libjpeg") { deps = [ ":libjpeg_shim" ] public_configs = [ ":system_libjpeg", ":system_libjpeg_config" ] } } else if (use_qt_libjpeg) { # we do need shim since pdfium just includes 'system' headers config ("qt_libjpeg_config") { include_dirs = string_split(qt_libjpeg_includes) } source_set("qt_libjpeg") { public_configs = [ ":qt_libjpeg_config", ":system_libjpeg_config" ] } } config("system_libjpeg_config") { defines = [ "USE_SYSTEM_LIBJPEG" ] } config("libjpeg_turbo_config") { defines = [ "USE_LIBJPEG_TURBO=1" ] } # This is a meta target that forwards to the system's libjpeg, # third_party/libjpeg, or third_party/libjpeg_turbo depending on the build args # declared in this file. group("jpeg") { if (use_system_libjpeg) { public_deps = [ ":libjpeg" ] } else if (use_qt_libjpeg) { public_deps = [ ":qt_libjpeg" ] } else if (use_libjpeg_turbo) { public_deps = [ "//third_party/libjpeg_turbo:libjpeg" ] public_configs = [ ":libjpeg_turbo_config" ] } else { public_deps = [ "//third_party/libjpeg:libjpeg" ] } } # This is a meta target that forwards include paths only to the system's # libjpeg, third_party/libjpeg, or third_party/libjpeg_turbo depending on the # build args declared in this file. This is needed, rarely, for targets that # need to reference libjpeg without explicitly building it. group("jpeg_includes") { if (use_system_libjpeg) { public_configs = [ ":system_libjpeg_config", ":system_libjpeg" ] } else if (use_libjpeg_turbo) { public_configs = [ "//third_party/libjpeg_turbo:libjpeg_config" ] } else { public_configs = [ "//third_party/libjpeg:libjpeg_config" ] } } # FreeType and HarfBuzz libraries are dependent on each other. This component # will depend on the appropriate source sets or export the system packages # for both FreeType and HarfBuzz. component("freetype_harfbuzz") { public_configs = [] public_deps = [] if (use_system_freetype) { public_configs += [ "//third_party/freetype:freetype_from_pkgconfig" ] } else if (use_qt_freetype) { public_configs += [ "//third_party/freetype:freetype_from_qt" ] } else { public_deps += [ "//third_party/freetype:freetype_source" ] } if (use_system_harfbuzz) { public_configs += [ "//third_party/harfbuzz-ng:harfbuzz_from_pkgconfig" ] } else if (use_qt_harfbuzz) { public_configs += [ "//third_party/harfbuzz-ng:harfbuzz_from_qt" ] } else { public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ] } }