# Copyright (c) 2025 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//arkcompiler/runtime_core/ark_config.gni")

config("abckit_wrapper_public_config") {
  include_dirs = [ "$ark_root/ark_guard/abckit_wrapper/include" ]
}

abckit_wrapper_sources = [
  "library/annotation.cpp",
  "library/annotation_interface.cpp",
  "library/annotation_linker.cpp",
  "library/annotation_target_visitor.cpp",
  "library/base_module.cpp",
  "library/child_visitor.cpp",
  "library/class.cpp",
  "library/class_hierarchy_builder.cpp",
  "library/class_visitor.cpp",
  "library/field.cpp",
  "library/file_view.cpp",
  "library/hierarchy_dumper.cpp",
  "library/member.cpp",
  "library/member_visitor.cpp",
  "library/method.cpp",
  "library/modifiers.cpp",
  "library/module.cpp",
  "library/module_visitor.cpp",
  "library/namespace.cpp",
  "library/object.cpp",
  "library/object_visitor.cpp",
  "library/string_util.cpp",
]

abckit_wrapper_include_dirs = [
  "$ark_root/libabckit/include",
  "$ark_root/static_core",
  "$target_gen_dir/../../static_core",
]

abckit_wrapper_configs = [
  "$ark_root/libabckit:abckit_config",
  "$ark_root/static_core/libarkbase:arkbase_public_config",
]

ohos_static_library("abckit_wrapper_static") {
  sources = abckit_wrapper_sources

  include_dirs = abckit_wrapper_include_dirs

  configs = abckit_wrapper_configs

  public_configs = [ ":abckit_wrapper_public_config" ]

  deps = [
    "$ark_root/libabckit/src:libabckit_static",
    "$ark_root/static_core/libarkbase:libarktsbase_frontend_static",
  ]

  if (is_mingw || is_win) {
    output_extension = "lib"
  } else {
    output_extension = "a"
  }

  complete_static_lib = true

  part_name = "runtime_core"
  subsystem_name = "arkcompiler"
}

ohos_shared_library("abckit_wrapper_shared") {
  sources = abckit_wrapper_sources

  include_dirs = abckit_wrapper_include_dirs

  configs = abckit_wrapper_configs

  public_configs = [ ":abckit_wrapper_public_config" ]

  deps = [
    "$ark_root/libabckit/src:libabckit",
    "$ark_root/static_core/libarkbase:libarktsbase",
  ]

  if (is_mingw || is_win) {
    output_extension = "dll"
  } else {
    output_extension = "so"
  }

  part_name = "runtime_core"
  subsystem_name = "arkcompiler"
}