# 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.

config("material_roboto_font_loader_ios_config") {
  include_dirs = [ "src/src" ]
  visibility = [ ":material_roboto_font_loader_ios" ]
}

source_set("material_roboto_font_loader_ios") {
  sources = [
    "src/src/MDCTypographyAdditions/MDFRobotoFontLoader+MDCTypographyAdditions.h",
    "src/src/MDCTypographyAdditions/MDFRobotoFontLoader+MDCTypographyAdditions.m",
    "src/src/MDFRobotoFontLoader.h",
    "src/src/MDFRobotoFontLoader.m",
    "src/src/MaterialRobotoFontLoader.h",
  ]
  deps = [
    ":material_roboto_font_loader_bundle",
    "//ios/third_party/material_components_ios",
    "//ios/third_party/material_font_disk_loader_ios",
  ]
  public_configs = [ ":material_roboto_font_loader_ios_config" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [
    ":material_roboto_font_loader_ios_config",
    "//build/config/compiler:enable_arc",
    "//build/config/compiler:no_chromium_code",
  ]
}

bundle_data("material_roboto_font_loader_bundle") {
  visibility = [ ":material_roboto_font_loader_ios" ]
  sources = [
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Black.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-BlackItalic.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Bold.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-BoldItalic.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Italic.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Light.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-LightItalic.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Medium.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-MediumItalic.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Regular.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-Thin.ttf",
    "src/src/MaterialRobotoFontLoader.bundle/Roboto-ThinItalic.ttf",
  ]
  outputs = [
    "{{bundle_resources_dir}}/MaterialRobotoFontLoader.bundle/{{source_file_part}}",
  ]
}
