# 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") assert(!is_ios, "This is not used on iOS, don't drag it in unintentionally") declare_args() { # Uses system libjpeg. If true, overrides use_libjpeg_turbo. use_system_libjpeg = false # Uses libjpeg_turbo as the jpeg implementation. Has no effect if # use_system_libjpeg is set. use_libjpeg_turbo = true } config("system_libjpeg_config") { libs = [ "jpeg" ] 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_configs = [ ":system_libjpeg_config" ] } 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" ] } 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 += [ "//build/linux:freetype_from_pkgconfig" ] } else { public_deps += [ "//third_party/freetype:freetype_source" ] } if (use_system_harfbuzz) { public_configs += [ "//third_party/harfbuzz-ng:harfbuzz_from_pkgconfig" ] } else { public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ] } }