1e0dac50fSopenharmony_ci# Copyright (c) 2022-2024 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_ciispreview = false 18e0dac50fSopenharmony_ciif (is_mingw || is_mac || is_linux) { 19e0dac50fSopenharmony_ci ispreview = true 20e0dac50fSopenharmony_ci} 21e0dac50fSopenharmony_ciif (!ispreview) { 22e0dac50fSopenharmony_ci group("previewer_window") { 23e0dac50fSopenharmony_ci } 24e0dac50fSopenharmony_ci 25e0dac50fSopenharmony_ci group("previewer_window_napi") { 26e0dac50fSopenharmony_ci } 27e0dac50fSopenharmony_ci} else { 28e0dac50fSopenharmony_ci if (current_os == "mac") { 29e0dac50fSopenharmony_ci suffix = ".dylib" 30e0dac50fSopenharmony_ci } else if (current_os == "linux") { 31e0dac50fSopenharmony_ci suffix = ".so" 32e0dac50fSopenharmony_ci } else if (current_os == "mingw") { 33e0dac50fSopenharmony_ci suffix = ".dll" 34e0dac50fSopenharmony_ci } 35e0dac50fSopenharmony_ci 36e0dac50fSopenharmony_ci config("previewer_window_config") { 37e0dac50fSopenharmony_ci visibility = [ "*:*" ] 38e0dac50fSopenharmony_ci visibility += [ 39e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform/image_native", 40e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform/ipc_core", 41e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform/utils", 42e0dac50fSopenharmony_ci ] 43e0dac50fSopenharmony_ci 44e0dac50fSopenharmony_ci include_dirs = [ 45e0dac50fSopenharmony_ci "include", 46e0dac50fSopenharmony_ci "../utils/include", 47e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform/utils", 48e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform/ipc_core", 49e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform/image_native", 50e0dac50fSopenharmony_ci "${window_base_path}/interfaces/innerkits/wm", 51e0dac50fSopenharmony_ci ] 52e0dac50fSopenharmony_ci } 53e0dac50fSopenharmony_ci 54e0dac50fSopenharmony_ci ohos_shared_library("previewer_window") { 55e0dac50fSopenharmony_ci libs = [] 56e0dac50fSopenharmony_ci 57e0dac50fSopenharmony_ci public_configs = [ 58e0dac50fSopenharmony_ci ":previewer_window_config", 59e0dac50fSopenharmony_ci "${ability_runtime_path}/frameworks/simulator/common:ability_simulator_common_config", 60e0dac50fSopenharmony_ci ] 61e0dac50fSopenharmony_ci sources = [ 62e0dac50fSopenharmony_ci "../utils/src/window_transition_info.cpp", 63e0dac50fSopenharmony_ci "../utils/src/wm_math.cpp", 64e0dac50fSopenharmony_ci "src/vsync_station.cpp", 65e0dac50fSopenharmony_ci "src/window.cpp", 66e0dac50fSopenharmony_ci "src/window_display.cpp", 67e0dac50fSopenharmony_ci "src/window_impl.cpp", 68e0dac50fSopenharmony_ci "src/window_model.cpp", 69e0dac50fSopenharmony_ci "src/window_option.cpp", 70e0dac50fSopenharmony_ci "src/window_scene.cpp", 71e0dac50fSopenharmony_ci ] 72e0dac50fSopenharmony_ci 73e0dac50fSopenharmony_ci include_dirs = [ 74e0dac50fSopenharmony_ci "include", 75e0dac50fSopenharmony_ci "${arkui_path}/ace_engine/adapter/preview/external/multimodalinput", 76e0dac50fSopenharmony_ci "${arkui_path}/ace_engine/", 77e0dac50fSopenharmony_ci "mock", 78e0dac50fSopenharmony_ci "../utils/include", 79e0dac50fSopenharmony_ci "${ide_previewer_external_path}", 80e0dac50fSopenharmony_ci ] 81e0dac50fSopenharmony_ci public_deps = [ 82e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform:ipc_core", 83e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform:utils", 84e0dac50fSopenharmony_ci ] 85e0dac50fSopenharmony_ci 86e0dac50fSopenharmony_ci external_deps = [ 87e0dac50fSopenharmony_ci "ace_engine:ace_uicontent", 88e0dac50fSopenharmony_ci "graphic_2d:librender_service_client", 89e0dac50fSopenharmony_ci "hilog:libhilog", 90e0dac50fSopenharmony_ci ] 91e0dac50fSopenharmony_ci 92e0dac50fSopenharmony_ci cflags = [ "-std=c++11" ] 93e0dac50fSopenharmony_ci part_name = "window_manager" 94e0dac50fSopenharmony_ci subsystem_name = "window" 95e0dac50fSopenharmony_ci } 96e0dac50fSopenharmony_ci 97e0dac50fSopenharmony_ci config("previewer_window_napi_config") { 98e0dac50fSopenharmony_ci visibility = [ ":*" ] 99e0dac50fSopenharmony_ci 100e0dac50fSopenharmony_ci include_dirs = [ 101e0dac50fSopenharmony_ci "../interfaces/kits/napi/window_runtime/window_napi", 102e0dac50fSopenharmony_ci "../interfaces/kits/napi/window_runtime/window_stage_napi", 103e0dac50fSopenharmony_ci ] 104e0dac50fSopenharmony_ci } 105e0dac50fSopenharmony_ci 106e0dac50fSopenharmony_ci ohos_shared_library("previewer_window_napi") { 107e0dac50fSopenharmony_ci public_configs = [ ":previewer_window_napi_config" ] 108e0dac50fSopenharmony_ci 109e0dac50fSopenharmony_ci libs = [] 110e0dac50fSopenharmony_ci 111e0dac50fSopenharmony_ci sources = [ 112e0dac50fSopenharmony_ci "${ability_runtime_path}/frameworks/simulator/ability_simulator/src/js_runtime_utils.cpp", 113e0dac50fSopenharmony_ci "../interfaces/kits/napi/window_runtime/window_napi/js_window.cpp", 114e0dac50fSopenharmony_ci "../interfaces/kits/napi/window_runtime/window_napi/js_window_utils.cpp", 115e0dac50fSopenharmony_ci "../interfaces/kits/napi/window_runtime/window_stage_napi/js_window_stage.cpp", 116e0dac50fSopenharmony_ci 117e0dac50fSopenharmony_ci # mock 118e0dac50fSopenharmony_ci "mock/js_transition_controller.cpp", 119e0dac50fSopenharmony_ci "mock/js_window_listener.cpp", 120e0dac50fSopenharmony_ci "mock/js_window_register_manager.cpp", 121e0dac50fSopenharmony_ci "mock/permission.cpp", 122e0dac50fSopenharmony_ci "mock/pixel_map_napi.cpp", 123e0dac50fSopenharmony_ci "mock/window_manager_napi/js_window_manager.cpp", 124e0dac50fSopenharmony_ci "mock/window_manager_napi/window_manager_module.cpp", 125e0dac50fSopenharmony_ci ] 126e0dac50fSopenharmony_ci 127e0dac50fSopenharmony_ci include_dirs = [ 128e0dac50fSopenharmony_ci ".", 129e0dac50fSopenharmony_ci "include", 130e0dac50fSopenharmony_ci "../utils/include", 131e0dac50fSopenharmony_ci "mock", 132e0dac50fSopenharmony_ci "${ability_runtime_path}/interfaces/inner_api/runtime/include", 133e0dac50fSopenharmony_ci ] 134e0dac50fSopenharmony_ci 135e0dac50fSopenharmony_ci deps = [ 136e0dac50fSopenharmony_ci ":previewer_window", 137e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform:eventhandler", 138e0dac50fSopenharmony_ci "${graphic_base_path}/graphic_2d/rosen/modules/platform:utils", 139e0dac50fSopenharmony_ci ] 140e0dac50fSopenharmony_ci 141e0dac50fSopenharmony_ci external_deps = [ 142e0dac50fSopenharmony_ci "ace_engine:ace_uicontent", 143e0dac50fSopenharmony_ci "hilog:libhilog", 144e0dac50fSopenharmony_ci "napi:ace_napi", 145e0dac50fSopenharmony_ci ] 146e0dac50fSopenharmony_ci 147e0dac50fSopenharmony_ci cflags_cc = [ "-DWINDOW_PREVIEW" ] 148e0dac50fSopenharmony_ci cflags = [ "-std=c++11" ] 149e0dac50fSopenharmony_ci 150e0dac50fSopenharmony_ci part_name = "window_manager" 151e0dac50fSopenharmony_ci subsystem_name = "window" 152e0dac50fSopenharmony_ci } 153e0dac50fSopenharmony_ci 154e0dac50fSopenharmony_ci ohos_copy("window_stage_copy_modules") { 155e0dac50fSopenharmony_ci deps = [] 156e0dac50fSopenharmony_ci sources = [] 157e0dac50fSopenharmony_ci napi_modules = [ "window_stage_modules:windowstage" ] 158e0dac50fSopenharmony_ci 159e0dac50fSopenharmony_ci foreach(module, napi_modules) { 160e0dac50fSopenharmony_ci deps += [ module ] 161e0dac50fSopenharmony_ci out_path = get_label_info(module, "root_out_dir") 162e0dac50fSopenharmony_ci out_name = get_label_info(module, "name") 163e0dac50fSopenharmony_ci sources += [ out_path + "/window/window_manager/lib" + out_name + suffix ] 164e0dac50fSopenharmony_ci } 165e0dac50fSopenharmony_ci 166e0dac50fSopenharmony_ci target_path = get_label_info(":copy_previewer_library", "target_out_dir") 167e0dac50fSopenharmony_ci 168e0dac50fSopenharmony_ci outputs = 169e0dac50fSopenharmony_ci [ target_path + 170e0dac50fSopenharmony_ci "/previewer/common/bin/module/application/{{source_file_part}}" ] 171e0dac50fSopenharmony_ci part_name = "window_manager" 172e0dac50fSopenharmony_ci subsystem_name = "window" 173e0dac50fSopenharmony_ci } 174e0dac50fSopenharmony_ci ohos_copy("copy_previewer_library") { 175e0dac50fSopenharmony_ci shared_library_path = get_label_info(":previewer_window", "root_out_dir") 176e0dac50fSopenharmony_ci sources = [ shared_library_path + 177e0dac50fSopenharmony_ci "/window/window_manager/libpreviewer_window" + suffix ] 178e0dac50fSopenharmony_ci deps = [ ":previewer_window" ] 179e0dac50fSopenharmony_ci 180e0dac50fSopenharmony_ci if (current_os == "mingw" || current_os == "mac") { 181e0dac50fSopenharmony_ci deps += [ ":window_stage_copy_modules" ] 182e0dac50fSopenharmony_ci shared_library_path = 183e0dac50fSopenharmony_ci get_label_info(":previewer_window_napi", "root_out_dir") 184e0dac50fSopenharmony_ci sources += [ shared_library_path + 185e0dac50fSopenharmony_ci "/window/window_manager/libpreviewer_window_napi" + suffix ] 186e0dac50fSopenharmony_ci deps += [ ":previewer_window_napi" ] 187e0dac50fSopenharmony_ci } 188e0dac50fSopenharmony_ci 189e0dac50fSopenharmony_ci outputs = [ target_out_dir + "/previewer/common/bin/{{source_file_part}}" ] 190e0dac50fSopenharmony_ci module_source_dir = target_out_dir + "/previewer/common/bin/" 191e0dac50fSopenharmony_ci module_install_name = "" 192e0dac50fSopenharmony_ci 193e0dac50fSopenharmony_ci part_name = "window_manager" 194e0dac50fSopenharmony_ci subsystem_name = "window" 195e0dac50fSopenharmony_ci } 196e0dac50fSopenharmony_ci} 197