1# Copyright (c) 2025 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") 16import("./link_abc.gni") 17 18group("arkts_frontend_native_package") { 19 deps = [ "koala_projects/arkoala-arkts/arkui-ohos/src/ani/native:ace_ani_native_package" ] 20} 21 22link_abc_files("arkoala_abc") { 23 targets = [ 24 "koala_projects/incremental/common:common_abc", 25 "koala_projects/incremental/compat:compat_abc", 26 "koala_projects/incremental/runtime:runtime_abc", 27 "koala_projects/interop:interop-arkts_abc", 28 "koala_projects/arkoala-arkts:components_abc" 29 ] 30 31 output_name = "arkoala" 32} 33 34ohos_prebuilt_etc("arkoala_abc_prebuild") { 35 source = "$target_out_dir/arkoala.abc" 36 deps = [ ":arkoala_abc" ] 37 module_install_dir = "framework" 38 subsystem_name = ace_engine_subsystem 39 part_name = ace_engine_part 40} 41 42template("arkts_frontend") { 43 forward_variables_from(invoker, "*") 44 45 ohos_source_set(target_name) { 46 subsystem_name = ace_engine_subsystem 47 part_name = ace_engine_part 48 defines += invoker.defines 49 configs = [ "$ace_root:ace_config" ] 50 if (!build_ohos_sdk) { 51 deps = [ ":ArkoalaNative_ark" ] 52 } 53 54 sources = [ 55 "ani_graphics_module.cpp", 56 "arkts_ani_utils.cpp", 57 "arkts_frontend.cpp", 58 "arkts_plugin_frontend.cpp", 59 "entry/arkts_entry_loader.cpp", 60 ] 61 external_deps = [ 62 "hilog:libhilog", 63 "runtime_core:ani", 64 ] 65 #if (current_os == "ohos") { 66 #external_deps += [ "graphic_2d:drawing_ani" ] 67 #} 68 } 69} 70 71foreach(item, ace_platforms) { 72 arkts_frontend("arkts_frontend_" + item.name) { 73 defines = [] 74 config = { 75 } 76 77 if (defined(item.config)) { 78 config = item.config 79 } 80 81 if (defined(config.defines)) { 82 defines = config.defines 83 } 84 } 85} 86 87config("arkoala_native_config") { 88 include_dirs = [ 89 "koala_projects/arkoala/framework/native/src", 90 "koala_projects/arkoala/framework/native/src/generated", 91 "koala_projects/interop/src", 92 "koala_projects/interop/src/cpp", 93 "koala_projects/interop/src/cpp/ets", 94 "koala_projects/interop/src/cpp/types", 95 "koala_projects/interop/src/cpp/ohos", 96 ] 97} 98 99ohos_shared_library("ArkoalaNative_ark") { 100 defines = [ 101 "KOALA_OHOS", 102 "__MUSL__", 103 "KOALA_ETS_NAPI", 104 "KOALA_USE_PANDA_VM", 105 ] 106 107 sources = [ 108 "koala_projects/arkoala/framework/native/src/events.cc", 109 "koala_projects/arkoala/framework/native/src/generated/bridge_custom.cc", 110 "koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc", 111 "koala_projects/arkoala/framework/native/src/generated/callback_deserialize_call.cc", 112 "koala_projects/arkoala/framework/native/src/generated/callback_managed_caller.cc", 113 "koala_projects/arkoala/framework/native/src/generated/library.cc", 114 "koala_projects/arkoala/framework/native/src/vsync.cc", 115 ] 116 117 # interop source 118 sources += [ 119 "koala_projects/interop/src/cpp/callback-resource.cc", 120 "koala_projects/interop/src/cpp/common-interop.cc", 121 "koala_projects/interop/src/cpp/ets/convertors-ets.cc", 122 "koala_projects/interop/src/cpp/interop-logging.cc", 123 "koala_projects/interop/src/cpp/types/signatures.cc", 124 ] 125 126 deps = [ 127 "koala_projects/arkoala-arkts/arkui-ohos/src/ani/native:arkoala_native_ani", 128 ] 129 130 configs = [ ":arkoala_native_config" ] 131 132 external_deps = [ 133 "hilog:hilog_ndk", 134 "hilog:libhilog", 135 ] 136 137 138 if (is_arkui_x) { 139 deps += [ "//third_party/bounds_checking_function:libsec_static" ] 140 } else { 141 external_deps += [ "bounds_checking_function:libsec_static" ] 142 } 143 144 subsystem_name = ace_engine_subsystem 145 part_name = ace_engine_part 146} 147