133eb0b6dSopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd. 233eb0b6dSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 333eb0b6dSopenharmony_ci# you may not use this file except in compliance with the License. 433eb0b6dSopenharmony_ci# You may obtain a copy of the License at 533eb0b6dSopenharmony_ci# 633eb0b6dSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 733eb0b6dSopenharmony_ci# 833eb0b6dSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 933eb0b6dSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 1033eb0b6dSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1133eb0b6dSopenharmony_ci# See the License for the specific language governing permissions and 1233eb0b6dSopenharmony_ci# limitations under the License. 1333eb0b6dSopenharmony_ci 1433eb0b6dSopenharmony_ciimport("//build/ohos.gni") 1533eb0b6dSopenharmony_ci 1633eb0b6dSopenharmony_ciconfig("ark_interop_config") { 1733eb0b6dSopenharmony_ci include_dirs = [ "../../.." ] 1833eb0b6dSopenharmony_ci cflags = [ 1933eb0b6dSopenharmony_ci "-std=c++17", 2033eb0b6dSopenharmony_ci "-Wno-gnu-zero-variadic-macro-arguments", 2133eb0b6dSopenharmony_ci "-fvisibility-inlines-hidden", 2233eb0b6dSopenharmony_ci "-fvisibility=hidden", 2333eb0b6dSopenharmony_ci "-fno-exceptions", 2433eb0b6dSopenharmony_ci "-fno-rtti", 2533eb0b6dSopenharmony_ci "-fmerge-all-constants", 2633eb0b6dSopenharmony_ci "-ffunction-sections", 2733eb0b6dSopenharmony_ci "-Wno-unused-private-field", 2833eb0b6dSopenharmony_ci ] 2933eb0b6dSopenharmony_ci if (current_os == "ohos") { 3033eb0b6dSopenharmony_ci cflags += [ "-fPIC" ] 3133eb0b6dSopenharmony_ci defines = [ 3233eb0b6dSopenharmony_ci "__LINUX__", 3333eb0b6dSopenharmony_ci "__OHOS__=1", 3433eb0b6dSopenharmony_ci ] 3533eb0b6dSopenharmony_ci } else if (current_os == "linux") { 3633eb0b6dSopenharmony_ci defines = [ "__LINUX__" ] 3733eb0b6dSopenharmony_ci } else if (current_os == "mingw") { 3833eb0b6dSopenharmony_ci defines = [ "__WINDOWS__" ] 3933eb0b6dSopenharmony_ci } 4033eb0b6dSopenharmony_ci} 4133eb0b6dSopenharmony_ci 4233eb0b6dSopenharmony_ciohos_source_set("cj_envsetup") { 4333eb0b6dSopenharmony_ci part_name = "napi" 4433eb0b6dSopenharmony_ci subsystem_name = "arkui" 4533eb0b6dSopenharmony_ci 4633eb0b6dSopenharmony_ci configs = [ ":ark_interop_config" ] 4733eb0b6dSopenharmony_ci sources = [ "cj_envsetup.cpp" ] 4833eb0b6dSopenharmony_ci} 4933eb0b6dSopenharmony_ci 5033eb0b6dSopenharmony_ciohos_shared_library("ark_interop") { 5133eb0b6dSopenharmony_ci part_name = "napi" 5233eb0b6dSopenharmony_ci subsystem_name = "arkui" 5333eb0b6dSopenharmony_ci innerapi_tags = [ "platformsdk" ] 5433eb0b6dSopenharmony_ci 5533eb0b6dSopenharmony_ci public_configs = [ ":ark_interop_config" ] 5633eb0b6dSopenharmony_ci 5733eb0b6dSopenharmony_ci sources = [ 5833eb0b6dSopenharmony_ci "ark_interop_async.cpp", 5933eb0b6dSopenharmony_ci "ark_interop_bigint.cpp", 6033eb0b6dSopenharmony_ci "ark_interop_engine.cpp", 6133eb0b6dSopenharmony_ci "ark_interop_global.cpp", 6233eb0b6dSopenharmony_ci "ark_interop_hitrace.cpp", 6333eb0b6dSopenharmony_ci "ark_interop_module.cpp", 6433eb0b6dSopenharmony_ci "ark_interop_napi.cpp", 6533eb0b6dSopenharmony_ci "ark_interop_object.cpp", 6633eb0b6dSopenharmony_ci "ark_interop_scope.cpp", 6733eb0b6dSopenharmony_ci "ark_interop_string.cpp", 6833eb0b6dSopenharmony_ci "ark_interop_symbol.cpp", 6933eb0b6dSopenharmony_ci ] 7033eb0b6dSopenharmony_ci 7133eb0b6dSopenharmony_ci deps = [ 7233eb0b6dSopenharmony_ci ":cj_envsetup", 7333eb0b6dSopenharmony_ci "../../../..:ace_napi", 7433eb0b6dSopenharmony_ci ] 7533eb0b6dSopenharmony_ci 7633eb0b6dSopenharmony_ci external_deps = [ 7733eb0b6dSopenharmony_ci "ets_runtime:libark_jsruntime", 7833eb0b6dSopenharmony_ci "hilog:libhilog", 7933eb0b6dSopenharmony_ci ] 8033eb0b6dSopenharmony_ci 8133eb0b6dSopenharmony_ci if (!is_mingw && !is_mac && !is_linux && !is_arkui_x && is_standard_system) { 8233eb0b6dSopenharmony_ci external_deps += [ "c_utils:utils" ] 8333eb0b6dSopenharmony_ci 8433eb0b6dSopenharmony_ci # macro in runtime_core in full repo will effect build napi 8533eb0b6dSopenharmony_ci if (ohos_indep_compiler_enable) { 8633eb0b6dSopenharmony_ci external_deps += [ "runtime_core:libarkbase_static" ] 8733eb0b6dSopenharmony_ci } 8833eb0b6dSopenharmony_ci } 8933eb0b6dSopenharmony_ci 9033eb0b6dSopenharmony_ci defines = [ 9133eb0b6dSopenharmony_ci "DEBUG_JS", 9233eb0b6dSopenharmony_ci "ENABLE_PROFILE", 9333eb0b6dSopenharmony_ci ] 9433eb0b6dSopenharmony_ci 9533eb0b6dSopenharmony_ci if (use_clang_coverage) { 9633eb0b6dSopenharmony_ci defines += [ "CLANG_COVERAGE" ] 9733eb0b6dSopenharmony_ci } 9833eb0b6dSopenharmony_ci 9933eb0b6dSopenharmony_ci if (is_arkui_x) { 10033eb0b6dSopenharmony_ci deps += [ 10133eb0b6dSopenharmony_ci "//third_party/bounds_checking_function:libsec_static", 10233eb0b6dSopenharmony_ci "//third_party/libuv:uv", 10333eb0b6dSopenharmony_ci ] 10433eb0b6dSopenharmony_ci } else { 10533eb0b6dSopenharmony_ci external_deps += [ 10633eb0b6dSopenharmony_ci "bounds_checking_function:libsec_static", 10733eb0b6dSopenharmony_ci "libuv:uv", 10833eb0b6dSopenharmony_ci ] 10933eb0b6dSopenharmony_ci } 11033eb0b6dSopenharmony_ci 11133eb0b6dSopenharmony_ci if (build_ohos_sdk) { 11233eb0b6dSopenharmony_ci defines += [ 11333eb0b6dSopenharmony_ci "NO_HITRACE", 11433eb0b6dSopenharmony_ci "NO_CONTAINER", 11533eb0b6dSopenharmony_ci ] 11633eb0b6dSopenharmony_ci } else { 11733eb0b6dSopenharmony_ci external_deps += [ 11833eb0b6dSopenharmony_ci "eventhandler:libeventhandler", 11933eb0b6dSopenharmony_ci "hitrace:hitrace_meter", 12033eb0b6dSopenharmony_ci ] 12133eb0b6dSopenharmony_ci } 12233eb0b6dSopenharmony_ci} 12333eb0b6dSopenharmony_ci 12433eb0b6dSopenharmony_ciohos_shared_library("ark_interop_loader") { 12533eb0b6dSopenharmony_ci part_name = "napi" 12633eb0b6dSopenharmony_ci subsystem_name = "arkui" 12733eb0b6dSopenharmony_ci relative_install_dir = "module" 12833eb0b6dSopenharmony_ci 12933eb0b6dSopenharmony_ci configs = [ ":ark_interop_config" ] 13033eb0b6dSopenharmony_ci 13133eb0b6dSopenharmony_ci sources = [ "ark_interop_loader.cpp" ] 13233eb0b6dSopenharmony_ci 13333eb0b6dSopenharmony_ci external_deps = [ "hilog:libhilog" ] 13433eb0b6dSopenharmony_ci 13533eb0b6dSopenharmony_ci deps = [ 13633eb0b6dSopenharmony_ci ":cj_envsetup", 13733eb0b6dSopenharmony_ci "../../../..:ace_napi", 13833eb0b6dSopenharmony_ci ] 13933eb0b6dSopenharmony_ci} 140