# Copyright 2013 The Flutter 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("//flutter/build/zip_bundle.gni")
import("//flutter/shell/version/version.gni")

executable("_font-subset") {
  output_name = "font-subset"

  sources = [
    "hb_wrappers.h",
    "main.cc",
  ]

  deps = [ "//third_party/harfbuzz" ]

  if (is_mac) {
    frameworks = [
      "Foundation.framework",
      "CoreGraphics.framework",
      "CoreText.framework",
    ]
  }
}

generated_file("_font-subset-license") {
  source_path = rebase_path(".", "//flutter")
  license_path =
      rebase_path("//flutter/sky/packages/sky_engine/LICENSE", "//flutter")
  git_url = "https://github.com/flutter/engine/tree/$engine_version"
  outputs = [ "$target_gen_dir/LICENSE.font-subset.md" ]
  contents = [
    "# font-subset",
    "",
    "This tool is used by the Flutter SDK to tree shake icon fonts.",
    "",
    "Source code for this tool: [flutter/engine/$source_path]($git_url/$source_path).",
    "License for this tool: [flutter/engine/sky/packages/sky_engine/LICENSE]($git_url/$license_path).",
  ]
}

zip_bundle("font-subset") {
  if (is_mac) {
    # Mac artifacts sometimes use mac and sometimes darwin. Standardizing the
    # names will require changes in the list of artifacts the tool is downloading.
    output = "darwin-${target_cpu}/font-subset.zip"
  } else {
    output = "${full_target_platform_name}/font-subset.zip"
  }

  font_subset_bin = "font-subset"
  if (is_win) {
    font_subset_bin = "${font_subset_bin}.exe"
  }

  files = [
    {
      source = "$root_build_dir/$font_subset_bin"
      destination = font_subset_bin
    },
    {
      source = "$root_gen_dir/const_finder.dart.snapshot"
      destination = "const_finder.dart.snapshot"
    },
    {
      source = "$target_gen_dir/LICENSE.font-subset.md"
      destination = "LICENSE.font-subset.md"
    },
  ]

  deps = [
    ":_font-subset",
    ":_font-subset-license",
    "//flutter/tools/const_finder",
  ]
}
