17a9a4b8fSopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd.
27a9a4b8fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
37a9a4b8fSopenharmony_ci# you may not use this file except in compliance with the License.
47a9a4b8fSopenharmony_ci# You may obtain a copy of the License at
57a9a4b8fSopenharmony_ci#
67a9a4b8fSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
77a9a4b8fSopenharmony_ci#
87a9a4b8fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
97a9a4b8fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
107a9a4b8fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
117a9a4b8fSopenharmony_ci# See the License for the specific language governing permissions and
127a9a4b8fSopenharmony_ci# limitations under the License.
137a9a4b8fSopenharmony_ci
147a9a4b8fSopenharmony_ciimport("//build/ohos.gni")
157a9a4b8fSopenharmony_ciimport("//build/ohos/ace/ace.gni")
167a9a4b8fSopenharmony_ciimport("//foundation/resourceschedule/work_scheduler/workscheduler.gni")
177a9a4b8fSopenharmony_ci
187a9a4b8fSopenharmony_ciohos_shared_library("cj_work_scheduler_ffi") {
197a9a4b8fSopenharmony_ci  branch_protector_ret = "pac_ret"
207a9a4b8fSopenharmony_ci
217a9a4b8fSopenharmony_ci  sanitize = {
227a9a4b8fSopenharmony_ci    cfi = true
237a9a4b8fSopenharmony_ci    cfi_cross_dso = true
247a9a4b8fSopenharmony_ci    debug = false
257a9a4b8fSopenharmony_ci  }
267a9a4b8fSopenharmony_ci
277a9a4b8fSopenharmony_ci  include_dirs = [
287a9a4b8fSopenharmony_ci    "${worksched_root_path}/utils/native/include",
297a9a4b8fSopenharmony_ci    "${worksched_root_path}/frameworks/include",
307a9a4b8fSopenharmony_ci  ]
317a9a4b8fSopenharmony_ci
327a9a4b8fSopenharmony_ci  if (!defined(defines)) {
337a9a4b8fSopenharmony_ci    defines = []
347a9a4b8fSopenharmony_ci  }
357a9a4b8fSopenharmony_ci
367a9a4b8fSopenharmony_ci  if (product_name != "ohos-sdk") {
377a9a4b8fSopenharmony_ci    deps = [
387a9a4b8fSopenharmony_ci      "${worksched_frameworks_path}:workschedclient",
397a9a4b8fSopenharmony_ci      "${worksched_utils_path}:workschedutils",
407a9a4b8fSopenharmony_ci    ]
417a9a4b8fSopenharmony_ci    external_deps = [
427a9a4b8fSopenharmony_ci      "ability_base:base",
437a9a4b8fSopenharmony_ci      "ability_base:want",
447a9a4b8fSopenharmony_ci      "hilog:libhilog",
457a9a4b8fSopenharmony_ci      "napi:ace_napi",
467a9a4b8fSopenharmony_ci      "napi:cj_bind_ffi",
477a9a4b8fSopenharmony_ci    ]
487a9a4b8fSopenharmony_ci    sources = [ "work_scheduler/work_scheduler_ffi.cpp" ]
497a9a4b8fSopenharmony_ci  } else {
507a9a4b8fSopenharmony_ci    defines += [ "PREVIEWER" ]
517a9a4b8fSopenharmony_ci    sources = [ "work_scheduler/work_scheduler_mock.cpp" ]
527a9a4b8fSopenharmony_ci    external_deps = [ "napi:cj_bind_ffi" ]
537a9a4b8fSopenharmony_ci  }
547a9a4b8fSopenharmony_ci
557a9a4b8fSopenharmony_ci  if (current_os == "ohos") {
567a9a4b8fSopenharmony_ci    defines += [ "OHOS_PLATFORM" ]
577a9a4b8fSopenharmony_ci  }
587a9a4b8fSopenharmony_ci
597a9a4b8fSopenharmony_ci  if (current_os == "mingw") {
607a9a4b8fSopenharmony_ci    defines += [ "WINDOWS_PLATFORM" ]
617a9a4b8fSopenharmony_ci  }
627a9a4b8fSopenharmony_ci
637a9a4b8fSopenharmony_ci  innerapi_tags = [ "platformsdk" ]
647a9a4b8fSopenharmony_ci  subsystem_name = "resourceschedule"
657a9a4b8fSopenharmony_ci  part_name = "${worksched_native_part_name}"
667a9a4b8fSopenharmony_ci}
67