14d6c458bSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd. 24d6c458bSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 34d6c458bSopenharmony_ci# you may not use this file except in compliance with the License. 44d6c458bSopenharmony_ci# You may obtain a copy of the License at 54d6c458bSopenharmony_ci# 64d6c458bSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 74d6c458bSopenharmony_ci# 84d6c458bSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 94d6c458bSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 104d6c458bSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 114d6c458bSopenharmony_ci# See the License for the specific language governing permissions and 124d6c458bSopenharmony_ci# limitations under the License. 134d6c458bSopenharmony_ci 144d6c458bSopenharmony_ciimport("//build/ohos.gni") 154d6c458bSopenharmony_ciimport("//commonlibrary/ets_utils/ets_utils_config.gni") 164d6c458bSopenharmony_ciimport("//foundation/arkui/ace_engine/ace_config.gni") 174d6c458bSopenharmony_ciimport("//foundation/arkui/ace_engine/build/ace_gen_obj.gni") 184d6c458bSopenharmony_ci 194d6c458bSopenharmony_ciconfig("worker_public_config") { 204d6c458bSopenharmony_ci include_dirs = [ js_concurrent_module_common ] 214d6c458bSopenharmony_ci} 224d6c458bSopenharmony_ci 234d6c458bSopenharmony_ciohos_shared_library("worker") { 244d6c458bSopenharmony_ci branch_protector_ret = "pac_ret" 254d6c458bSopenharmony_ci sanitize = { 264d6c458bSopenharmony_ci cfi = true 274d6c458bSopenharmony_ci cfi_cross_dso = true 284d6c458bSopenharmony_ci debug = false 294d6c458bSopenharmony_ci } 304d6c458bSopenharmony_ci include_dirs = [ 314d6c458bSopenharmony_ci "include", 324d6c458bSopenharmony_ci ets_util_path, 334d6c458bSopenharmony_ci ] 344d6c458bSopenharmony_ci public_configs = [ ":worker_public_config" ] 354d6c458bSopenharmony_ci 364d6c458bSopenharmony_ci sources = [ 374d6c458bSopenharmony_ci "../common/helper/napi_helper.cpp", 384d6c458bSopenharmony_ci "message_queue.cpp", 394d6c458bSopenharmony_ci "native_module_worker.cpp", 404d6c458bSopenharmony_ci "thread.cpp", 414d6c458bSopenharmony_ci "worker.cpp", 424d6c458bSopenharmony_ci "worker_runner.cpp", 434d6c458bSopenharmony_ci ] 444d6c458bSopenharmony_ci 454d6c458bSopenharmony_ci deps = [ "${ets_util_path}/js_sys_module/timer:timer" ] 464d6c458bSopenharmony_ci 474d6c458bSopenharmony_ci defines = [] 484d6c458bSopenharmony_ci 494d6c458bSopenharmony_ci if (is_ohos) { 504d6c458bSopenharmony_ci defines += [ "OHOS_PLATFORM" ] 514d6c458bSopenharmony_ci } else if (is_mingw) { 524d6c458bSopenharmony_ci defines += [ "WINDOWS_PLATFORM" ] 534d6c458bSopenharmony_ci } else if (target_os == "android") { 544d6c458bSopenharmony_ci defines += [ "ANDROID_PLATFORM" ] 554d6c458bSopenharmony_ci } else if (target_os == "ios") { 564d6c458bSopenharmony_ci defines += [ "IOS_PLATFORM" ] 574d6c458bSopenharmony_ci } else if (is_mac && target_os != "android") { 584d6c458bSopenharmony_ci defines += [ "MAC_PLATFORM" ] 594d6c458bSopenharmony_ci } 604d6c458bSopenharmony_ci 614d6c458bSopenharmony_ci external_deps = [ "napi:ace_napi" ] 624d6c458bSopenharmony_ci 634d6c458bSopenharmony_ci if (is_linux && current_toolchain == host_toolchain) { 644d6c458bSopenharmony_ci external_deps += [ "innerkits:libhilog_linux" ] 654d6c458bSopenharmony_ci defines = [ 664d6c458bSopenharmony_ci "LINUX_PLATFORM", 674d6c458bSopenharmony_ci "PREVIEW", 684d6c458bSopenharmony_ci ] 694d6c458bSopenharmony_ci } else { 704d6c458bSopenharmony_ci if (is_standard_system) { 714d6c458bSopenharmony_ci external_deps += [ 724d6c458bSopenharmony_ci "hilog:libhilog", 734d6c458bSopenharmony_ci "init:libbegetutil", 744d6c458bSopenharmony_ci ] 754d6c458bSopenharmony_ci } else { 764d6c458bSopenharmony_ci external_deps += [ "hilog:libhilog" ] 774d6c458bSopenharmony_ci } 784d6c458bSopenharmony_ci } 794d6c458bSopenharmony_ci 804d6c458bSopenharmony_ci if (is_ohos && is_standard_system && !is_arkui_x) { 814d6c458bSopenharmony_ci defines += [ "ENABLE_WORKER_EVENTHANDLER" ] 824d6c458bSopenharmony_ci external_deps += [ "eventhandler:libeventhandler" ] 834d6c458bSopenharmony_ci } 844d6c458bSopenharmony_ci 854d6c458bSopenharmony_ci external_deps += [ "hitrace:hitrace_meter" ] 864d6c458bSopenharmony_ci 874d6c458bSopenharmony_ci subsystem_name = "commonlibrary" 884d6c458bSopenharmony_ci part_name = "ets_utils" 894d6c458bSopenharmony_ci 904d6c458bSopenharmony_ci relative_install_dir = "module" 914d6c458bSopenharmony_ci} 924d6c458bSopenharmony_ci 934d6c458bSopenharmony_ciohos_source_set("worker_static") { 944d6c458bSopenharmony_ci branch_protector_ret = "pac_ret" 954d6c458bSopenharmony_ci sanitize = { 964d6c458bSopenharmony_ci cfi = true 974d6c458bSopenharmony_ci cfi_cross_dso = true 984d6c458bSopenharmony_ci debug = false 994d6c458bSopenharmony_ci } 1004d6c458bSopenharmony_ci include_dirs = [ 1014d6c458bSopenharmony_ci js_concurrent_module_common, 1024d6c458bSopenharmony_ci "$concurrent_module/worker", 1034d6c458bSopenharmony_ci "$sys_module/timer", 1044d6c458bSopenharmony_ci ets_util_path, 1054d6c458bSopenharmony_ci ] 1064d6c458bSopenharmony_ci 1074d6c458bSopenharmony_ci sources = [ 1084d6c458bSopenharmony_ci "$js_concurrent_module_common/helper/napi_helper.cpp", 1094d6c458bSopenharmony_ci "$sys_module/timer/timer.cpp", 1104d6c458bSopenharmony_ci "message_queue.cpp", 1114d6c458bSopenharmony_ci "native_module_worker.cpp", 1124d6c458bSopenharmony_ci "thread.cpp", 1134d6c458bSopenharmony_ci "worker.cpp", 1144d6c458bSopenharmony_ci "worker_runner.cpp", 1154d6c458bSopenharmony_ci ] 1164d6c458bSopenharmony_ci deps = [] 1174d6c458bSopenharmony_ci 1184d6c458bSopenharmony_ci defines = [] 1194d6c458bSopenharmony_ci 1204d6c458bSopenharmony_ci external_deps = [] 1214d6c458bSopenharmony_ci if (is_standard_system) { 1224d6c458bSopenharmony_ci external_deps += [ 1234d6c458bSopenharmony_ci "hilog:libhilog", 1244d6c458bSopenharmony_ci "init:libbegetutil", 1254d6c458bSopenharmony_ci ] 1264d6c458bSopenharmony_ci } else { 1274d6c458bSopenharmony_ci external_deps += [ 1284d6c458bSopenharmony_ci "c_utils:utils", 1294d6c458bSopenharmony_ci "hilog:libhilog", 1304d6c458bSopenharmony_ci ] 1314d6c458bSopenharmony_ci } 1324d6c458bSopenharmony_ci 1334d6c458bSopenharmony_ci if (is_arkui_x) { 1344d6c458bSopenharmony_ci include_dirs += [ 1354d6c458bSopenharmony_ci "$plugins_root/hilog/include", 1364d6c458bSopenharmony_ci "$plugins_root/interfaces", 1374d6c458bSopenharmony_ci "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", 1384d6c458bSopenharmony_ci ] 1394d6c458bSopenharmony_ci sources -= [ 1404d6c458bSopenharmony_ci "$js_concurrent_module_common/helper/napi_helper.cpp", 1414d6c458bSopenharmony_ci "$sys_module/timer/timer.cpp", 1424d6c458bSopenharmony_ci ] 1434d6c458bSopenharmony_ci defines += [ "__ARKUI_CROSS__" ] 1444d6c458bSopenharmony_ci deps += [ 1454d6c458bSopenharmony_ci "$plugins_root/libs/napi:napi_${target_os}", 1464d6c458bSopenharmony_ci "$plugins_root/libs/uv:uv_${target_os}", 1474d6c458bSopenharmony_ci "$sys_module/timer:timer_static", 1484d6c458bSopenharmony_ci ] 1494d6c458bSopenharmony_ci if (target_os == "android") { 1504d6c458bSopenharmony_ci defines += [ "ANDROID_PLATFORM" ] 1514d6c458bSopenharmony_ci } 1524d6c458bSopenharmony_ci if (target_os == "ios") { 1534d6c458bSopenharmony_ci defines += [ "IOS_PLATFORM" ] 1544d6c458bSopenharmony_ci } 1554d6c458bSopenharmony_ci } else { 1564d6c458bSopenharmony_ci deps += [ "$napi_root:ace_napi" ] 1574d6c458bSopenharmony_ci external_deps += [ "hitrace:hitrace_meter" ] 1584d6c458bSopenharmony_ci } 1594d6c458bSopenharmony_ci 1604d6c458bSopenharmony_ci if (is_ohos && is_standard_system && !is_arkui_x) { 1614d6c458bSopenharmony_ci defines += [ "ENABLE_WORKER_EVENTHANDLER" ] 1624d6c458bSopenharmony_ci external_deps += [ "eventhandler:libeventhandler" ] 1634d6c458bSopenharmony_ci } 1644d6c458bSopenharmony_ci 1654d6c458bSopenharmony_ci subsystem_name = "commonlibrary" 1664d6c458bSopenharmony_ci part_name = "ets_utils" 1674d6c458bSopenharmony_ci} 1684d6c458bSopenharmony_ci 1694d6c458bSopenharmony_cigroup("worker_packages") { 1704d6c458bSopenharmony_ci deps = [ ":worker" ] 1714d6c458bSopenharmony_ci} 172