// Copyright (C) 2008 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.

//
// Common definitions.
//

cc_defaults {
    name: "libicui18n_defaults",
    srcs: [
        "affixpatternparser.cpp",
        "alphaindex.cpp",
        "anytrans.cpp",
        "astro.cpp",
        "basictz.cpp",
        "bocsu.cpp",
        "brktrans.cpp",
        "buddhcal.cpp",
        "calendar.cpp",
        "casetrn.cpp",
        "cecal.cpp",
        "chnsecal.cpp",
        "choicfmt.cpp",
        "coleitr.cpp",
        "collationbuilder.cpp",
        "collationcompare.cpp",
        "collation.cpp",
        "collationdatabuilder.cpp",
        "collationdata.cpp",
        "collationdatareader.cpp",
        "collationdatawriter.cpp",
        "collationfastlatinbuilder.cpp",
        "collationfastlatin.cpp",
        "collationfcd.cpp",
        "collationiterator.cpp",
        "collationkeys.cpp",
        "collationroot.cpp",
        "collationrootelements.cpp",
        "collationruleparser.cpp",
        "collationsets.cpp",
        "collationsettings.cpp",
        "collationtailoring.cpp",
        "collationweights.cpp",
        "coll.cpp",
        "compactdecimalformat.cpp",
        "coptccal.cpp",
        "cpdtrans.cpp",
        "csdetect.cpp",
        "csmatch.cpp",
        "csr2022.cpp",
        "csrecog.cpp",
        "csrmbcs.cpp",
        "csrsbcs.cpp",
        "csrucode.cpp",
        "csrutf8.cpp",
        "curramt.cpp",
        "currfmt.cpp",
        "currpinf.cpp",
        "currunit.cpp",
        "dangical.cpp",
        "datefmt.cpp",
        "dayperiodrules.cpp",
        "dcfmtsym.cpp",
        "decContext.cpp",
        "decfmtst.cpp",
        "decimalformatpattern.cpp",
        "decimfmt.cpp",
        "decimfmtimpl.cpp",
        "decNumber.cpp",
        "digitaffix.cpp",
        "digitaffixesandpadding.cpp",
        "digitformatter.cpp",
        "digitgrouping.cpp",
        "digitinterval.cpp",
        "digitlst.cpp",
        "dtfmtsym.cpp",
        "dtitvfmt.cpp",
        "dtitvinf.cpp",
        "dtptngen.cpp",
        "dtrule.cpp",
        "esctrn.cpp",
        "ethpccal.cpp",
        "fmtable_cnv.cpp",
        "fmtable.cpp",
        "format.cpp",
        "fphdlimp.cpp",
        "fpositer.cpp",
        "funcrepl.cpp",
        "gender.cpp",
        "gregocal.cpp",
        "gregoimp.cpp",
        "hebrwcal.cpp",
        "indiancal.cpp",
        "inputext.cpp",
        "islamcal.cpp",
        "japancal.cpp",
        "measfmt.cpp",
        "measunit.cpp",
        "measure.cpp",
        "msgfmt.cpp",
        "name2uni.cpp",
        "nfrs.cpp",
        "nfrule.cpp",
        "nfsubs.cpp",
        "nortrans.cpp",
        "nounit.cpp",
        "nultrans.cpp",
        "number_affixutils.cpp",
        "number_compact.cpp",
        "number_decimalquantity.cpp",
        "number_decimfmtprops.cpp",
        "number_fluent.cpp",
        "number_formatimpl.cpp",
        "number_grouping.cpp",
        "number_integerwidth.cpp",
        "number_longnames.cpp",
        "number_modifiers.cpp",
        "number_notation.cpp",
        "number_padding.cpp",
        "number_patternmodifier.cpp",
        "number_patternstring.cpp",
        "number_rounding.cpp",
        "number_scientific.cpp",
        "number_stringbuilder.cpp",
        "numfmt.cpp",
        "numsys.cpp",
        "olsontz.cpp",
        "persncal.cpp",
        "pluralaffix.cpp",
        "plurfmt.cpp",
        "plurrule.cpp",
        "precision.cpp",
        "quant.cpp",
        "quantityformatter.cpp",
        "rbnf.cpp",
        "rbt.cpp",
        "rbt_data.cpp",
        "rbt_pars.cpp",
        "rbt_rule.cpp",
        "rbt_set.cpp",
        "rbtz.cpp",
        "regexcmp.cpp",
        "regeximp.cpp",
        "regexst.cpp",
        "regextxt.cpp",
        "region.cpp",
        "reldatefmt.cpp",
        "reldtfmt.cpp",
        "rematch.cpp",
        "remtrans.cpp",
        "repattrn.cpp",
        "rulebasedcollator.cpp",
        "scientificnumberformatter.cpp",
        "scriptset.cpp",
        "search.cpp",
        "selfmt.cpp",
        "sharedbreakiterator.cpp",
        "simpletz.cpp",
        "smallintformatter.cpp",
        "smpdtfmt.cpp",
        "smpdtfst.cpp",
        "sortkey.cpp",
        "standardplural.cpp",
        "strmatch.cpp",
        "strrepl.cpp",
        "stsearch.cpp",
        "taiwncal.cpp",
        "timezone.cpp",
        "titletrn.cpp",
        "tmunit.cpp",
        "tmutamt.cpp",
        "tmutfmt.cpp",
        "tolowtrn.cpp",
        "toupptrn.cpp",
        "translit.cpp",
        "transreg.cpp",
        "tridpars.cpp",
        "tzfmt.cpp",
        "tzgnames.cpp",
        "tznames.cpp",
        "tznames_impl.cpp",
        "tzrule.cpp",
        "tztrans.cpp",
        "ucal.cpp",
        "ucln_in.cpp",
        "ucol.cpp",
        "ucoleitr.cpp",
        "ucol_res.cpp",
        "ucol_sit.cpp",
        "ucsdet.cpp",
        "udat.cpp",
        "udateintervalformat.cpp",
        "udatpg.cpp",
        "ufieldpositer.cpp",
        "uitercollationiterator.cpp",
        "ulocdata.cpp",
        "umsg.cpp",
        "unesctrn.cpp",
        "uni2name.cpp",
        "unum.cpp",
        "unumsys.cpp",
        "upluralrules.cpp",
        "uregexc.cpp",
        "uregex.cpp",
        "uregion.cpp",
        "usearch.cpp",
        "uspoof_build.cpp",
        "uspoof_conf.cpp",
        "uspoof.cpp",
        "uspoof_impl.cpp",
        "utf16collationiterator.cpp",
        "utf8collationiterator.cpp",
        "utmscale.cpp",
        "utrans.cpp",
        "valueformatter.cpp",
        "windtfmt.cpp",
        "winnmfmt.cpp",
        "wintzimpl.cpp",
        "visibledigits.cpp",
        "vtzone.cpp",
        "vzone.cpp",
        "zonemeta.cpp",
        "zrule.cpp",
        "ztrans.cpp",
    ],
    cflags: [
        "-D_REENTRANT",
        "-DU_I18N_IMPLEMENTATION",
        "-O3",
        "-fvisibility=hidden",
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
    ],
    cppflags: [
        "-std=c++11",
    ],
    rtti: true,
    export_include_dirs: ["."],

    target: {
        android: {
            cflags: [
                "-DPIC",
                "-fPIC",
            ],
        },
    },
}

//
// Build for the host and target (device).
//
cc_library_shared {
    name: "libicui18n",
    defaults: ["libicui18n_defaults"],
    host_supported: true,
    unique_host_soname: true,
    shared_libs: ["libicuuc"],
}