1# Copyright (c) 2021 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("//foundation/arkui/ace_engine/ace_config.gni") 16 17config("ace_base_i18n_config") { 18 defines = [ "ACEL10N" ] 19} 20 21template("ace_base_i18n") { 22 forward_variables_from(invoker, "*") 23 source_set(target_name) { 24 defines += invoker.defines 25 cflags_cc += invoker.cflags_cc 26 deps = [ "$ace_root/frameworks/base/resource:ace_resource" ] 27 28 if (defined(config.use_external_icu)) { 29 if (config.use_external_icu == "shared") { 30 deps += [ "//third_party/icu/icu4c:shared_icui18n" ] 31 } else if (config.use_external_icu == "static") { 32 deps += [ "//third_party/icu/icu4c:static_icui18n" ] 33 } 34 configs += [ "$ace_flutter_engine_root/icu:icu_config_$platform" ] 35 } else { 36 if (ace_use_rosen_drawing) { 37 if (platform == "ohos") { 38 deps += [ "$ace_flutter_engine_root/icu:ace_libicu_$platform" ] 39 } else { 40 include_dirs = [ 41 "$skia_root_new/third_party/externals/icu/source/common", 42 "$skia_root_new/third_party/externals/icu/source/i18n/", 43 ] 44 } 45 } else { 46 deps += [ "$ace_flutter_engine_root/icu:ace_libicu_$platform" ] 47 } 48 } 49 50 configs += [ 51 ":ace_base_i18n_config", 52 "$ace_root:ace_config", 53 ] 54 55 # add base source file here 56 sources = [ "localization.cpp" ] 57 } 58} 59 60foreach(item, ace_platforms) { 61 ace_base_i18n("ace_base_i18n_" + item.name) { 62 platform = item.name 63 defines = [] 64 cflags_cc = [] 65 config = { 66 } 67 68 if (defined(item.config)) { 69 config = item.config 70 } 71 72 if (defined(config.defines)) { 73 defines = config.defines 74 } 75 76 if (defined(config.cflags_cc)) { 77 cflags_cc = config.cflags_cc 78 } 79 } 80} 81