1e0dac50fSopenharmony_ci# Copyright (c) 2023-2023 Huawei Device Co., Ltd.
2e0dac50fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3e0dac50fSopenharmony_ci# you may not use this file except in compliance with the License.
4e0dac50fSopenharmony_ci# You may obtain a copy of the License at
5e0dac50fSopenharmony_ci#
6e0dac50fSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7e0dac50fSopenharmony_ci#
8e0dac50fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9e0dac50fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10e0dac50fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11e0dac50fSopenharmony_ci# See the License for the specific language governing permissions and
12e0dac50fSopenharmony_ci# limitations under the License.
13e0dac50fSopenharmony_ci
14e0dac50fSopenharmony_ciimport("//build/ohos.gni")
15e0dac50fSopenharmony_ciimport("//build/ohos/ace/ace.gni")
16e0dac50fSopenharmony_ciimport("//build/templates/abc/ohos_abc.gni")
17e0dac50fSopenharmony_ci
18e0dac50fSopenharmony_cies2abc_gen_abc("gen_extension_window_abc") {
19e0dac50fSopenharmony_ci  src_js = rebase_path("extension_window.js")
20e0dac50fSopenharmony_ci  dst_file = rebase_path(target_out_dir + "/extension_window.abc")
21e0dac50fSopenharmony_ci  in_puts = [ "extension_window.js" ]
22e0dac50fSopenharmony_ci  out_puts = [ target_out_dir + "/extension_window.abc" ]
23e0dac50fSopenharmony_ci  extra_args = [ "--module" ]
24e0dac50fSopenharmony_ci}
25e0dac50fSopenharmony_ci
26e0dac50fSopenharmony_cigen_js_obj("extension_window_js") {
27e0dac50fSopenharmony_ci  input = "extension_window.js"
28e0dac50fSopenharmony_ci  output = target_out_dir + "/extension_window.o"
29e0dac50fSopenharmony_ci}
30e0dac50fSopenharmony_ci
31e0dac50fSopenharmony_cigen_js_obj("extension_window_abc") {
32e0dac50fSopenharmony_ci  input = get_label_info(":gen_extension_window_abc", "target_out_dir") +
33e0dac50fSopenharmony_ci          "/extension_window.abc"
34e0dac50fSopenharmony_ci  output = target_out_dir + "/extension_window_abc.o"
35e0dac50fSopenharmony_ci  dep = ":gen_extension_window_abc"
36e0dac50fSopenharmony_ci}
37e0dac50fSopenharmony_ci
38e0dac50fSopenharmony_ciohos_shared_library("extensionwindow") {
39e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
40e0dac50fSopenharmony_ci  sanitize = {
41e0dac50fSopenharmony_ci    cfi = true
42e0dac50fSopenharmony_ci    cfi_cross_dso = true
43e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
44e0dac50fSopenharmony_ci    debug = false
45e0dac50fSopenharmony_ci  }
46e0dac50fSopenharmony_ci  sources = [ "extension_window_module.cpp" ]
47e0dac50fSopenharmony_ci
48e0dac50fSopenharmony_ci  configs = [ "../../../../resources/config/build:coverage_flags" ]
49e0dac50fSopenharmony_ci
50e0dac50fSopenharmony_ci  deps = [
51e0dac50fSopenharmony_ci    ":extension_window_abc",
52e0dac50fSopenharmony_ci    ":extension_window_js",
53e0dac50fSopenharmony_ci  ]
54e0dac50fSopenharmony_ci
55e0dac50fSopenharmony_ci  external_deps = [ "napi:ace_napi" ]
56e0dac50fSopenharmony_ci
57e0dac50fSopenharmony_ci  relative_install_dir = "module/application"
58e0dac50fSopenharmony_ci  part_name = "window_manager"
59e0dac50fSopenharmony_ci  subsystem_name = "window"
60e0dac50fSopenharmony_ci}
61e0dac50fSopenharmony_ci
62e0dac50fSopenharmony_ciconfig("extension_window_kit_config") {
63e0dac50fSopenharmony_ci  visibility = [ ":*" ]
64e0dac50fSopenharmony_ci
65e0dac50fSopenharmony_ci  include_dirs = [
66e0dac50fSopenharmony_ci    "../window_runtime/window_napi",
67e0dac50fSopenharmony_ci    "../../../innerkits/wm",
68e0dac50fSopenharmony_ci    "../../../../utils/include",
69e0dac50fSopenharmony_ci    "../../../../wm/include",
70e0dac50fSopenharmony_ci    "../../../../wmserver/include",
71e0dac50fSopenharmony_ci  ]
72e0dac50fSopenharmony_ci}
73e0dac50fSopenharmony_ci
74e0dac50fSopenharmony_ciohos_shared_library("extensionwindow_napi") {
75e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
76e0dac50fSopenharmony_ci  sanitize = {
77e0dac50fSopenharmony_ci    cfi = true
78e0dac50fSopenharmony_ci    cfi_cross_dso = true
79e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
80e0dac50fSopenharmony_ci    debug = false
81e0dac50fSopenharmony_ci  }
82e0dac50fSopenharmony_ci  sources = [
83e0dac50fSopenharmony_ci    "js_extension_window.cpp",
84e0dac50fSopenharmony_ci    "js_extension_window_listener.cpp",
85e0dac50fSopenharmony_ci    "js_extension_window_register_manager.cpp",
86e0dac50fSopenharmony_ci    "js_extension_window_utils.cpp",
87e0dac50fSopenharmony_ci  ]
88e0dac50fSopenharmony_ci
89e0dac50fSopenharmony_ci  configs = [
90e0dac50fSopenharmony_ci    ":extension_window_kit_config",
91e0dac50fSopenharmony_ci    "../../../../resources/config/build:coverage_flags",
92e0dac50fSopenharmony_ci  ]
93e0dac50fSopenharmony_ci
94e0dac50fSopenharmony_ci  include_dirs = [ "extension_window" ]
95e0dac50fSopenharmony_ci  deps = [
96e0dac50fSopenharmony_ci    "../../../../utils:libwmutil",
97e0dac50fSopenharmony_ci    "../../../../utils:libwmutil_base",
98e0dac50fSopenharmony_ci    "../../../../wm:libwm",
99e0dac50fSopenharmony_ci    "../window_runtime:window_native_kit",
100e0dac50fSopenharmony_ci  ]
101e0dac50fSopenharmony_ci
102e0dac50fSopenharmony_ci  external_deps = [
103e0dac50fSopenharmony_ci    "ability_runtime:runtime",
104e0dac50fSopenharmony_ci    "ace_engine:ace_uicontent",
105e0dac50fSopenharmony_ci    "c_utils:utils",
106e0dac50fSopenharmony_ci    "eventhandler:libeventhandler",
107e0dac50fSopenharmony_ci    "hilog:libhilog",
108e0dac50fSopenharmony_ci    "hitrace:hitrace_meter",
109e0dac50fSopenharmony_ci    "napi:ace_napi",
110e0dac50fSopenharmony_ci  ]
111e0dac50fSopenharmony_ci
112e0dac50fSopenharmony_ci  innerapi_tags = [ "platformsdk" ]
113e0dac50fSopenharmony_ci  part_name = "window_manager"
114e0dac50fSopenharmony_ci  subsystem_name = "window"
115e0dac50fSopenharmony_ci
116e0dac50fSopenharmony_ci  defines = []
117e0dac50fSopenharmony_ci  if (build_variant == "user") {
118e0dac50fSopenharmony_ci    defines += [ "IS_RELEASE_VERSION" ]
119e0dac50fSopenharmony_ci  }
120e0dac50fSopenharmony_ci}
121