1e0dac50fSopenharmony_ci# Copyright (c) 2022-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("../../windowmanager_aafwk.gni")
16e0dac50fSopenharmony_ci
17e0dac50fSopenharmony_ciconfig("libwindow_extension_private_config") {
18e0dac50fSopenharmony_ci  visibility = [ ":*" ]
19e0dac50fSopenharmony_ci
20e0dac50fSopenharmony_ci  include_dirs = [
21e0dac50fSopenharmony_ci    "include",
22e0dac50fSopenharmony_ci    "include/zidl",
23e0dac50fSopenharmony_ci    "../extension_connection/include",
24e0dac50fSopenharmony_ci    "../extension_connection/include/zidl",
25e0dac50fSopenharmony_ci    "../../interfaces/kits/napi/window_runtime/window_napi",
26e0dac50fSopenharmony_ci    "../../interfaces/innerkits/extension",
27e0dac50fSopenharmony_ci    "../../interfaces/innerkits/wm",
28e0dac50fSopenharmony_ci    "../../window_scene/interfaces/innerkits/include",
29e0dac50fSopenharmony_ci  ]
30e0dac50fSopenharmony_ci}
31e0dac50fSopenharmony_ci
32e0dac50fSopenharmony_ci## Build libwindow_extension.so
33e0dac50fSopenharmony_ciohos_shared_library("libwindow_extension") {
34e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
35e0dac50fSopenharmony_ci  sanitize = {
36e0dac50fSopenharmony_ci    cfi = true
37e0dac50fSopenharmony_ci    cfi_cross_dso = true
38e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
39e0dac50fSopenharmony_ci    debug = false
40e0dac50fSopenharmony_ci  }
41e0dac50fSopenharmony_ci  sources = [
42e0dac50fSopenharmony_ci    "../extension_connection/src/zidl/window_extension_client_proxy.cpp",
43e0dac50fSopenharmony_ci    "src/js_window_extension.cpp",
44e0dac50fSopenharmony_ci    "src/js_window_extension_context.cpp",
45e0dac50fSopenharmony_ci    "src/window_extension.cpp",
46e0dac50fSopenharmony_ci    "src/window_extension_context.cpp",
47e0dac50fSopenharmony_ci    "src/window_extension_stub_impl.cpp",
48e0dac50fSopenharmony_ci    "src/zidl/window_extension_stub.cpp",
49e0dac50fSopenharmony_ci  ]
50e0dac50fSopenharmony_ci
51e0dac50fSopenharmony_ci  configs = [
52e0dac50fSopenharmony_ci    ":libwindow_extension_private_config",
53e0dac50fSopenharmony_ci    "../../resources/config/build:coverage_flags",
54e0dac50fSopenharmony_ci  ]
55e0dac50fSopenharmony_ci
56e0dac50fSopenharmony_ci  deps = [
57e0dac50fSopenharmony_ci    "${window_base_path}/utils:libwmutil",
58e0dac50fSopenharmony_ci    "../../interfaces/kits/napi/window_runtime:window_native_kit",
59e0dac50fSopenharmony_ci    "../../utils:libwmutil_base",
60e0dac50fSopenharmony_ci    "../../window_scene/interfaces/innerkits:libwsutils",
61e0dac50fSopenharmony_ci    "../../wm:libwm",
62e0dac50fSopenharmony_ci  ]
63e0dac50fSopenharmony_ci
64e0dac50fSopenharmony_ci  external_deps = [
65e0dac50fSopenharmony_ci    "ability_base:want",
66e0dac50fSopenharmony_ci    "ability_runtime:ability_connect_callback_stub",
67e0dac50fSopenharmony_ci    "ability_runtime:ability_context_native",
68e0dac50fSopenharmony_ci    "ability_runtime:ability_manager",
69e0dac50fSopenharmony_ci    "ability_runtime:ability_start_options",
70e0dac50fSopenharmony_ci    "ability_runtime:app_context",
71e0dac50fSopenharmony_ci    "ability_runtime:extensionkit_native",
72e0dac50fSopenharmony_ci    "ability_runtime:napi_common",
73e0dac50fSopenharmony_ci    "ability_runtime:runtime",
74e0dac50fSopenharmony_ci    "c_utils:utils",
75e0dac50fSopenharmony_ci    "common_event_service:cesfwk_innerkits",
76e0dac50fSopenharmony_ci    "eventhandler:libeventhandler",
77e0dac50fSopenharmony_ci    "graphic_2d:librender_service_client",
78e0dac50fSopenharmony_ci    "hilog:libhilog",
79e0dac50fSopenharmony_ci    "hitrace:hitrace_meter",
80e0dac50fSopenharmony_ci    "input:libmmi-client",
81e0dac50fSopenharmony_ci    "ipc:ipc_single",
82e0dac50fSopenharmony_ci    "napi:ace_napi",
83e0dac50fSopenharmony_ci  ]
84e0dac50fSopenharmony_ci
85e0dac50fSopenharmony_ci  part_name = "window_manager"
86e0dac50fSopenharmony_ci  subsystem_name = "window"
87e0dac50fSopenharmony_ci
88e0dac50fSopenharmony_ci  defines = []
89e0dac50fSopenharmony_ci  if (build_variant == "user") {
90e0dac50fSopenharmony_ci    defines += [ "IS_RELEASE_VERSION" ]
91e0dac50fSopenharmony_ci  }
92e0dac50fSopenharmony_ci}
93e0dac50fSopenharmony_ci
94e0dac50fSopenharmony_ciconfig("window_extension_module_private_config") {
95e0dac50fSopenharmony_ci  visibility = [ ":*" ]
96e0dac50fSopenharmony_ci
97e0dac50fSopenharmony_ci  include_dirs = [ "include" ]
98e0dac50fSopenharmony_ci}
99e0dac50fSopenharmony_ci
100e0dac50fSopenharmony_ci## Build libwindow_extension_module.so
101e0dac50fSopenharmony_ciohos_shared_library("window_extension_module") {
102e0dac50fSopenharmony_ci  branch_protector_ret = "pac_ret"
103e0dac50fSopenharmony_ci  sanitize = {
104e0dac50fSopenharmony_ci    cfi = true
105e0dac50fSopenharmony_ci    cfi_cross_dso = true
106e0dac50fSopenharmony_ci    cfi_vcall_icall_only = true
107e0dac50fSopenharmony_ci    debug = false
108e0dac50fSopenharmony_ci  }
109e0dac50fSopenharmony_ci  sources = [ "src/window_extension_module_loader.cpp" ]
110e0dac50fSopenharmony_ci
111e0dac50fSopenharmony_ci  configs = [
112e0dac50fSopenharmony_ci    ":window_extension_module_private_config",
113e0dac50fSopenharmony_ci    "../../resources/config/build:coverage_flags",
114e0dac50fSopenharmony_ci  ]
115e0dac50fSopenharmony_ci
116e0dac50fSopenharmony_ci  deps = [ ":libwindow_extension" ]
117e0dac50fSopenharmony_ci
118e0dac50fSopenharmony_ci  external_deps = [
119e0dac50fSopenharmony_ci    "ability_runtime:ability_context_native",
120e0dac50fSopenharmony_ci    "ability_runtime:abilitykit_native",
121e0dac50fSopenharmony_ci    "common_event_service:cesfwk_innerkits",
122e0dac50fSopenharmony_ci    "hilog:libhilog",
123e0dac50fSopenharmony_ci    "napi:ace_napi",
124e0dac50fSopenharmony_ci  ]
125e0dac50fSopenharmony_ci  relative_install_dir = "extensionability/"
126e0dac50fSopenharmony_ci  subsystem_name = "window"
127e0dac50fSopenharmony_ci  part_name = "window_manager"
128e0dac50fSopenharmony_ci}
129e0dac50fSopenharmony_ci
130e0dac50fSopenharmony_cigroup("test") {
131e0dac50fSopenharmony_ci  testonly = true
132e0dac50fSopenharmony_ci  deps = [ "test:test" ]
133e0dac50fSopenharmony_ci}
134