17c804472Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
27c804472Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
37c804472Sopenharmony_ci# you may not use this file except in compliance with the License.
47c804472Sopenharmony_ci# You may obtain a copy of the License at
57c804472Sopenharmony_ci#
67c804472Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
77c804472Sopenharmony_ci#
87c804472Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
97c804472Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
107c804472Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
117c804472Sopenharmony_ci# See the License for the specific language governing permissions and
127c804472Sopenharmony_ci# limitations under the License.
137c804472Sopenharmony_ci
147c804472Sopenharmony_ciimport("//build/ohos.gni")
157c804472Sopenharmony_ciimport("//foundation/arkui/ace_engine/adapter/preview/build/component_test.gni")
167c804472Sopenharmony_ciimport("./gn/config.gni")
177c804472Sopenharmony_ci
187c804472Sopenharmony_citemplate("previewer_executable") {
197c804472Sopenharmony_ci  ohos_executable(target_name) {
207c804472Sopenharmony_ci    subsystem_name = "ide"
217c804472Sopenharmony_ci    part_name = invoker.part_name
227c804472Sopenharmony_ci    output_name = invoker.output_name
237c804472Sopenharmony_ci    sources = invoker.src
247c804472Sopenharmony_ci    configs = [ ":myconfig" ]
257c804472Sopenharmony_ci    include_dirs = [
267c804472Sopenharmony_ci      "./util/",
277c804472Sopenharmony_ci      "./cli/",
287c804472Sopenharmony_ci      "./mock/",
297c804472Sopenharmony_ci      "./jsapp/",
307c804472Sopenharmony_ci    ]
317c804472Sopenharmony_ci
327c804472Sopenharmony_ci    include_dirs += invoker.includes
337c804472Sopenharmony_ci    deps = [ "//third_party/bounds_checking_function:libsec_static" ]
347c804472Sopenharmony_ci    deps += invoker.deps
357c804472Sopenharmony_ci    libs = invoker.libs
367c804472Sopenharmony_ci
377c804472Sopenharmony_ci    if (platform == "mingw_x86_64") {
387c804472Sopenharmony_ci      defines = [ "NOGDI" ]
397c804472Sopenharmony_ci      if (defined(enable_component_test) && enable_component_test) {
407c804472Sopenharmony_ci        defines += [ "COMPONENT_TEST_ENABLED" ]
417c804472Sopenharmony_ci      }
427c804472Sopenharmony_ci      ldflags = [
437c804472Sopenharmony_ci        "-static",
447c804472Sopenharmony_ci        "-lws2_32",
457c804472Sopenharmony_ci        "-lshlwapi",
467c804472Sopenharmony_ci        "-ldbghelp",
477c804472Sopenharmony_ci      ]
487c804472Sopenharmony_ci    } else {
497c804472Sopenharmony_ci      defines = []
507c804472Sopenharmony_ci    }
517c804472Sopenharmony_ci    cflags = [
527c804472Sopenharmony_ci      "-std=c++17",
537c804472Sopenharmony_ci      "-Wno-deprecated-declarations",
547c804472Sopenharmony_ci      "-Wno-reorder",
557c804472Sopenharmony_ci      "-Wno-sign-compare",
567c804472Sopenharmony_ci    ]
577c804472Sopenharmony_ci  }
587c804472Sopenharmony_ci}
597c804472Sopenharmony_ci
607c804472Sopenharmony_cigroup("rich_ace_previewer") {
617c804472Sopenharmony_ci  if (platform == "mingw_x86_64") {
627c804472Sopenharmony_ci    deps = [ ":rich_previewer(${windows_buildtool})" ]
637c804472Sopenharmony_ci  } else if (platform == "mac_arm64" || platform == "mac_x64") {
647c804472Sopenharmony_ci    deps = [ ":rich_previewer(${mac_buildtool})" ]
657c804472Sopenharmony_ci  } else if (platform == "linux_x64") {
667c804472Sopenharmony_ci    deps = [ ":rich_previewer(${linux_buildtool})" ]
677c804472Sopenharmony_ci  }
687c804472Sopenharmony_ci}
697c804472Sopenharmony_ci
707c804472Sopenharmony_cigroup("lite_ace_previewer") {
717c804472Sopenharmony_ci  if (platform == "mingw_x86_64") {
727c804472Sopenharmony_ci    deps = [ ":lite_previewer(${windows_buildtool})" ]
737c804472Sopenharmony_ci  } else if (platform == "mac_arm64" || platform == "mac_x64") {
747c804472Sopenharmony_ci    deps = [ ":lite_previewer(${mac_buildtool})" ]
757c804472Sopenharmony_ci  } else if (platform == "linux_x64") {
767c804472Sopenharmony_ci    deps = [ ":lite_previewer(${linux_buildtool})" ]
777c804472Sopenharmony_ci  }
787c804472Sopenharmony_ci}
797c804472Sopenharmony_ci
807c804472Sopenharmony_cipreviewer_executable("rich_previewer") {
817c804472Sopenharmony_ci  part_name = "previewer"
827c804472Sopenharmony_ci  output_name = "Previewer"
837c804472Sopenharmony_ci  src = [ "RichPreviewer.cpp" ]
847c804472Sopenharmony_ci  includes = os_include_dirs
857c804472Sopenharmony_ci  includes += [
867c804472Sopenharmony_ci    "./mock/rich/",
877c804472Sopenharmony_ci    "./jsapp/rich/",
887c804472Sopenharmony_ci  ]
897c804472Sopenharmony_ci  libs = []
907c804472Sopenharmony_ci  deps = [
917c804472Sopenharmony_ci    "cli:cli_rich",
927c804472Sopenharmony_ci    "jsapp:jsapp_rich",
937c804472Sopenharmony_ci    "mock:mock_rich",
947c804472Sopenharmony_ci    "util:util_rich",
957c804472Sopenharmony_ci    "//third_party/libwebsockets:websockets_static",
967c804472Sopenharmony_ci  ]
977c804472Sopenharmony_ci}
987c804472Sopenharmony_ci
997c804472Sopenharmony_cipreviewer_executable("lite_previewer") {
1007c804472Sopenharmony_ci  part_name = "litePreviewer"
1017c804472Sopenharmony_ci  output_name = "Simulator"
1027c804472Sopenharmony_ci  src = [ "ThinPreviewer.cpp" ]
1037c804472Sopenharmony_ci  includes = [
1047c804472Sopenharmony_ci    "//foundation/ace/frameworks/base/utils/",
1057c804472Sopenharmony_ci    "./mock/lite/",
1067c804472Sopenharmony_ci    "./jsapp/lite/",
1077c804472Sopenharmony_ci    "//foundation/arkui/ui_lite/interfaces/innerkits/",
1087c804472Sopenharmony_ci    "//foundation/graphic/graphic_utils_lite/interfaces/kits/",
1097c804472Sopenharmony_ci    "//foundation/graphic/graphic_utils_lite/interfaces/innerkits/",
1107c804472Sopenharmony_ci    "//foundation/arkui/ui_lite/frameworks/dock/",
1117c804472Sopenharmony_ci  ]
1127c804472Sopenharmony_ci  deps = [
1137c804472Sopenharmony_ci    "cli:cli_lite",
1147c804472Sopenharmony_ci    "jsapp:jsapp_lite",
1157c804472Sopenharmony_ci    "mock:mock_lite",
1167c804472Sopenharmony_ci    "util:util_lite",
1177c804472Sopenharmony_ci    "//foundation/arkui/ace_engine_lite/frameworks/targets/simulator:ace_lite",
1187c804472Sopenharmony_ci    "//third_party/libwebsockets:websockets_static",
1197c804472Sopenharmony_ci  ]
1207c804472Sopenharmony_ci  if (platform == "mingw_x86_64") {
1217c804472Sopenharmony_ci    libs = [ "psapi" ]
1227c804472Sopenharmony_ci  } else if (platform == "mac_arm64" || platform == "mac_x64") {
1237c804472Sopenharmony_ci    libs = []
1247c804472Sopenharmony_ci  } else if (platform == "linux_x64" || platform == "linux_arm64") {
1257c804472Sopenharmony_ci    libs = []
1267c804472Sopenharmony_ci  }
1277c804472Sopenharmony_ci}
1287c804472Sopenharmony_ci
1297c804472Sopenharmony_ciconfig("myconfig") {
1307c804472Sopenharmony_ci  cflags = [
1317c804472Sopenharmony_ci    "-std=c++17",
1327c804472Sopenharmony_ci    "-Wno-error=implicit-fallthrough",
1337c804472Sopenharmony_ci  ]
1347c804472Sopenharmony_ci}
1357c804472Sopenharmony_ci
1367c804472Sopenharmony_ci# copy liteWearable config dir
1377c804472Sopenharmony_ciohos_copy("copy_previewer_fonts_lite") {
1387c804472Sopenharmony_ci  sources = [
1397c804472Sopenharmony_ci    "//foundation/arkui/ui_lite/tools/qt/simulator/font/SourceHanSansSC-Regular.otf",
1407c804472Sopenharmony_ci    "//foundation/arkui/ui_lite/tools/qt/simulator/font/font.bin",
1417c804472Sopenharmony_ci    "//foundation/arkui/ui_lite/tools/qt/simulator/font/line_cj.brk",
1427c804472Sopenharmony_ci  ]
1437c804472Sopenharmony_ci  outputs = [ target_out_dir + "/previewer/liteWearable/config/" +
1447c804472Sopenharmony_ci              "/{{source_file_part}}" ]
1457c804472Sopenharmony_ci  module_source_dir = target_out_dir + "/previewer/liteWearable/config/"
1467c804472Sopenharmony_ci  module_install_name = ""
1477c804472Sopenharmony_ci}
1487c804472Sopenharmony_ci
1497c804472Sopenharmony_ci# copy ide dynamic lib
1507c804472Sopenharmony_ciohos_copy("copy_ide_library") {
1517c804472Sopenharmony_ci  if (platform == "mingw_x86_64") {
1527c804472Sopenharmony_ci    suffix = ".dll"
1537c804472Sopenharmony_ci  } else if (platform == "mac_arm64" || platform == "mac_x64") {
1547c804472Sopenharmony_ci    suffix = ".dylib"
1557c804472Sopenharmony_ci  } else if (platform == "linux_x64" || platform == "linux_arm64") {
1567c804472Sopenharmony_ci    suffix = ".so"
1577c804472Sopenharmony_ci  }
1587c804472Sopenharmony_ci  deps = []
1597c804472Sopenharmony_ci  sources = []
1607c804472Sopenharmony_ci
1617c804472Sopenharmony_ci  deps += [ "util:ide_util" ]
1627c804472Sopenharmony_ci  out_path = get_label_info("util:ide_util", "root_out_dir")
1637c804472Sopenharmony_ci  sources += [ out_path + "/ide/previewer/libide_util" + suffix ]
1647c804472Sopenharmony_ci
1657c804472Sopenharmony_ci  deps += [ "jsapp/rich/external:ide_extension" ]
1667c804472Sopenharmony_ci  out_path = get_label_info("jsapp/rich/external:ide_extension", "root_out_dir")
1677c804472Sopenharmony_ci  sources += [ out_path + "/ide/previewer/libide_extension" + suffix ]
1687c804472Sopenharmony_ci
1697c804472Sopenharmony_ci  outputs = [ target_out_dir + "/previewer/common/bin/{{source_file_part}}" ]
1707c804472Sopenharmony_ci  module_source_dir = target_out_dir + "/previewer/common/bin/"
1717c804472Sopenharmony_ci  module_install_name = ""
1727c804472Sopenharmony_ci}
173