//#
//# Copyright (C) 2012 The Android Open Source Project
//#
//# Licensed under the Apache License, Version 2.0 (the "License");
//# you may not use this file except in compliance with the License.
//# You may obtain a copy of the License at
//#
//#      http://www.apache.org/licenses/LICENSE-2.0
//#
//# Unless required by applicable law or agreed to in writing, software
//# distributed under the License is distributed on an "AS IS" BASIS,
//# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//# See the License for the specific language governing permissions and
//# limitations under the License.
//#

//############################################################
//   Note:
//
//   This file is used to build HarfBuzz within the Android
//   platform itself.  If you need to compile HarfBuzz to
//   ship with your Android NDK app, you can use the autotools
//   build system to do so.  To do that you need to install a
//   "standalone" toolchain with the NDK, eg:
//
//       ndk/build/tools/make-standalone-toolchain.sh
//           --platform=android-18
//           --install-dir=/prefix
//
//   Set PLATFORM_PREFIX eng var to that prefix and make sure
//   the cross-compile tools from PLATFORM_PREFIX are in path.
//   Configure and install HarfBuzz:
//
//       ./configure --host=arm-linux-androideabi
//           --prefix=$PLATFORM_PREFIX
//           --enable-static
//           --with-freetype
//           PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig
//       make install
//
//   You can first build FreeType the same way:
//
//       ./configure --host=arm-linux-androideabi
//           --prefix=$PLATFORM_PREFIX
//           --enable-stati
//           --without-png
//           PKG_CONFIG_LIBDIR=$PLATFORM_PREFIX/lib/pkgconfig
//       make install
//

//############################################################
//   build the harfbuzz shared library
//
// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    default_applicable_licenses: ["external_harfbuzz_ng_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
// See: http://go/android-license-faq
license {
    name: "external_harfbuzz_ng_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        // "SPDX-license-Identifier-MIT-Modern-Variant",
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-ISC", // src/hb-ucd.cc
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-OFL", // by exception only
        "legacy_unencumbered",
    ],
    license_text: [
        "COPYING",
        "NOTICE",

        "LICENSE_APACHE2.TXT",
        "LICENSE_ISC.TXT",
        "LICENSE_OFL.TXT",
        "src/ms-use/COPYING", // For MIT license
        "LICENSE_MIT_MODERN_VARIANT.TXT",
    ],
}

cc_library {
    name: "libharfbuzz_subset",

    host_supported: true,

    srcs: [
        "src/hb-number.cc",
        "src/hb-ot-cff1-table.cc",
        "src/hb-ot-cff2-table.cc",
        "src/hb-static.cc",
        "src/hb-subset-cff-common.cc",
        "src/hb-subset-cff1.cc",
        "src/hb-subset-cff2.cc",
        "src/hb-subset-input.cc",
        "src/hb-subset-instancer-iup.cc",
        "src/hb-subset-instancer-solver.cc",
        "src/hb-subset-plan.cc",
        "src/hb-subset-repacker.cc",
        "src/hb-subset.cc",
        "src/graph/gsubgpos-context.cc",
    ],
    target: {
        windows: {
            enabled: true,
        },
    },
    shared_libs: [
        "libharfbuzz_ng",
    ],
    export_include_dirs: ["src"],
    cflags: [
        "-DHAVE_PTHREAD",
        "-DHB_NO_PRAGMA_GCC_DIAGNOSTIC",
        "-DHAVE_OT",
        "-DHAVE_ICU",
        "-DHAVE_ICU_BUILTIN",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-missing-field-initializers",
        "-Wno-implicit-fallthrough",
    ],
}

cc_library {
    name: "libharfbuzz_ng",
    host_supported: true,
    arch: {
        arm: {
            instruction_set: "arm",
        },
    },
    srcs: [
        "src/hb-aat-layout.cc",
        "src/hb-aat-map.cc",
        "src/hb-blob.cc",
        "src/hb-buffer-serialize.cc",
        "src/hb-buffer-verify.cc",
        "src/hb-buffer.cc",
        "src/hb-common.cc",
        "src/hb-draw.cc",
        "src/hb-face-builder.cc",
        "src/hb-face.cc",
        "src/hb-fallback-shape.cc",
        "src/hb-font.cc",
        "src/hb-map.cc",
        "src/hb-number.cc",
        "src/hb-ot-cff1-table.cc",
        "src/hb-ot-cff2-table.cc",
        "src/hb-ot-color.cc",
        "src/hb-ot-face.cc",
        "src/hb-ot-font.cc",
        "src/hb-ot-layout.cc",
        "src/hb-ot-map.cc",
        "src/hb-ot-math.cc",
        "src/hb-ot-meta.cc",
        "src/hb-ot-metrics.cc",
        "src/hb-ot-name.cc",
        "src/hb-ot-shape-fallback.cc",
        "src/hb-ot-shape-normalize.cc",
        "src/hb-ot-shape.cc",
        "src/hb-ot-shaper-arabic.cc",
        "src/hb-ot-shaper-default.cc",
        "src/hb-ot-shaper-hangul.cc",
        "src/hb-ot-shaper-hebrew.cc",
        "src/hb-ot-shaper-indic-table.cc",
        "src/hb-ot-shaper-indic.cc",
        "src/hb-ot-shaper-khmer.cc",
        "src/hb-ot-shaper-myanmar.cc",
        "src/hb-ot-shaper-syllabic.cc",
        "src/hb-ot-shaper-thai.cc",
        "src/hb-ot-shaper-use.cc",
        "src/hb-ot-shaper-vowel-constraints.cc",
        "src/hb-ot-tag.cc",
        "src/hb-ot-var.cc",
        "src/hb-outline.cc",
        "src/hb-paint-extents.cc",
        "src/hb-paint.cc",
        "src/hb-set.cc",
        "src/hb-shape-plan.cc",
        "src/hb-shape.cc",
        "src/hb-shaper.cc",
        "src/hb-static.cc",
        "src/hb-style.cc",
        "src/hb-ucd.cc",
        "src/hb-unicode.cc",
    ],

    target: {
        android: {
            shared_libs: [
                "libcutils",
                "libutils",
            ],
        },
        host: {
            static_libs: [
                "libcutils",
                "libutils",
            ],
        },
        windows: {
            enabled: true,
        },
    },

    shared_libs: [
        "libicu",
        "liblog",
    ],

    export_include_dirs: ["src"],
    cflags: [
        "-DHAVE_PTHREAD",
        "-DHB_NO_PRAGMA_GCC_DIAGNOSTIC",
        "-DHAVE_OT",
        "-DHAVE_ICU",
        "-DHAVE_ICU_BUILTIN",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-missing-field-initializers",
        "-Wno-implicit-fallthrough",
    ],

    afdo: true,
}

/////////////////////////////////////////////////////////////////////
// Following filegroups and licences are ones not used in Android.
/////////////////////////////////////////////////////////////////////

license {
    name: "external_harfbuzz_license.unused.GPLv3",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-GPL-3.0-with-autoconf-exception",
    ],
    license_text: [
        "LICENSE_GPLv3_WITH_AUTOCONF_EXCEPTION.TXT",
    ],
}

license {
    name: "external_harfbuzz_license.unused.GPLv2",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-GPL-2.0",
    ],
    license_text: [
        "LICENSE_GPLv2.TXT",
    ],
}

filegroup {
    name: "external_harfbuzz.unused.GPLv2",
    visibility: ["//visibility:private"],
    licenses: ["external_harfbuzz_license.unused.GPLv2"],
    srcs: [
        "test/shape/data/in-house/fonts/b895f8ff06493cc893ec44de380690ca0074edfa.ttf",
    ],
}

license {
    name: "external_harfbuzz_license.unused.LGPL",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-LGPL-2.1",
    ],
    license_text: [
        "LICENSE_GPLv2_WITH_AUTOCONF_EXCEPTION.TXT",
    ],
}

license {
    name: "external_harfbuzz_license.unused.MIT",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "src/ms-use/COPYING",
    ],
}

filegroup {
    name: "external_harfbuzz.unused.MIT",
    visibility: ["//visibility:private"],
    licenses: ["external_harfbuzz_license.unused.MIT"],
    srcs: [
        "src/ms-use/*",
    ],
}

license {
    name: "external_harfbuzz_license.unused.FSFAP",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-FSFAP",
    ],
    license_text: [
        "LICENSE_FSFAP.TXT",
    ],
}

license {
    name: "external_harfbuzz_license.unused.HPND-sell-variant",
    visibility: ["//visibility:private"],
    license_kinds: [
        // "SPDX-license-identifier-HPND-sell-variant",
    ],
    license_text: [
        "LICENSE_HPND_SELL_VARIANT.TXT",
    ],
}

filegroup {
    name: "external_harfbuzz.unused.HPND-sell-variant",
    visibility: ["//visibility:private"],
    licenses: ["external_harfbuzz_license.unused.HPND-sell-variant"],
    srcs: [
        "util/hb-fc-list.c",
    ],
}

license {
    name: "external_harfbuzz_license.unused.Apache-2.0",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "LICENSE_APACHE2.TXT",
    ],
}

filegroup {
    name: "external_harfbuzz.unused.Apache-2.0",
    visibility: ["//visibility:private"],
    licenses: ["external_harfbuzz_license.unused.Apache-2.0"],
    srcs: [
        "perf/fonts/Roboto-Regular.ttf",
    ],
}

license {
    name: "external_harfbuzz_license.unused.OFL",
    visibility: ["//visibility:private"],
    license_kinds: [
        "SPDX-license-identifier-OFL",
    ],
    license_text: [
        "LICENSE_OFL.TXT",
    ],
}

filegroup {
    name: "external_harfbuzz.unused.OFL",
    visibility: ["//visibility:private"],
    licenses: ["external_harfbuzz_license.unused.OFL"],
    srcs: [
        "perf/fonts/Amiri-Regular.ttf",
        "perf/fonts/NotoNastaliqUrdu-Regular.ttf",
    ],
}

license {
    name: "external_harfbuzz_license.unused.tests",
    visibility: ["//visibility:private"],
    license_kinds: [
        // "SPDX-license-Identifier-MIT-Modern-Variant",
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-OFL", // by exception only
        // Lots of font files used in tests directories are lack of license descriptions.
        // The license of fuzzing payload is unknown.
        "legacy_unencumbered",
    ],
    license_text: [
        "LICENSE_OFL.TXT",
        "LICENSE_APACHE2.TXT",
        "LICENSE_MIT_MODERN_VARIANT.TXT",
        "src/ms-use/COPYING", // For MIT license
    ],
}

filegroup {
    name: "external_harfbuzz.unused.tests",
    visibility: ["//visibility:private"],
    licenses: ["external_harfbuzz_license.unused.tests"],
    srcs: ["test/**/*"],
    path: "test",
}
