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_ciohos_source_set("util_lite") {
197c804472Sopenharmony_ci  sources = [
207c804472Sopenharmony_ci    "CallbackQueue.cpp",
217c804472Sopenharmony_ci    "CommandParser.cpp",
227c804472Sopenharmony_ci    "CppTimer.cpp",
237c804472Sopenharmony_ci    "CppTimerManager.cpp",
247c804472Sopenharmony_ci    "EndianUtil.cpp",
257c804472Sopenharmony_ci    "FileSystem.cpp",
267c804472Sopenharmony_ci    "Interrupter.cpp",
277c804472Sopenharmony_ci    "JsonReader.cpp",
287c804472Sopenharmony_ci    "ModelManager.cpp",
297c804472Sopenharmony_ci    "PreviewerEngineLog.cpp",
307c804472Sopenharmony_ci    "PublicMethods.cpp",
317c804472Sopenharmony_ci    "SharedDataManager.cpp",
327c804472Sopenharmony_ci    "TimeTool.cpp",
337c804472Sopenharmony_ci    "TraceTool.cpp",
347c804472Sopenharmony_ci    "WebSocketServer.cpp",
357c804472Sopenharmony_ci  ]
367c804472Sopenharmony_ci  cflags = [ "-std=c++17" ]
377c804472Sopenharmony_ci  if (platform == "mingw_x86_64") {
387c804472Sopenharmony_ci    sources += [
397c804472Sopenharmony_ci      "windows/CrashHandler.cpp",
407c804472Sopenharmony_ci      "windows/LocalDate.cpp",
417c804472Sopenharmony_ci      "windows/LocalSocket.cpp",
427c804472Sopenharmony_ci      "windows/NativeFileSystem.cpp",
437c804472Sopenharmony_ci    ]
447c804472Sopenharmony_ci  } else if (platform == "mac_arm64" || platform == "mac_x64") {
457c804472Sopenharmony_ci    sources += [
467c804472Sopenharmony_ci      "unix/CrashHandler.cpp",
477c804472Sopenharmony_ci      "unix/LocalDate.cpp",
487c804472Sopenharmony_ci      "unix/LocalSocket.cpp",
497c804472Sopenharmony_ci      "unix/NativeFileSystem.cpp",
507c804472Sopenharmony_ci    ]
517c804472Sopenharmony_ci  } else if (platform == "linux_x64") {
527c804472Sopenharmony_ci    sources += [
537c804472Sopenharmony_ci      "unix/CrashHandler.cpp",
547c804472Sopenharmony_ci      "unix/LocalDate.cpp",
557c804472Sopenharmony_ci      "unix/LocalSocket.cpp",
567c804472Sopenharmony_ci      "unix/NativeFileSystem.cpp",
577c804472Sopenharmony_ci    ]
587c804472Sopenharmony_ci  }
597c804472Sopenharmony_ci
607c804472Sopenharmony_ci  include_dirs = [
617c804472Sopenharmony_ci    ".",
627c804472Sopenharmony_ci    "../cli/",
637c804472Sopenharmony_ci    "../mock/lite/",
647c804472Sopenharmony_ci    "//third_party/bounds_checking_function/include/",
657c804472Sopenharmony_ci    "//third_party/cJSON/",
667c804472Sopenharmony_ci  ]
677c804472Sopenharmony_ci
687c804472Sopenharmony_ci  deps = [
697c804472Sopenharmony_ci    "//third_party/cJSON:cjson_static",
707c804472Sopenharmony_ci    "//third_party/libwebsockets:websockets_static",
717c804472Sopenharmony_ci  ]
727c804472Sopenharmony_ci  part_name = "previewer"
737c804472Sopenharmony_ci  subsystem_name = "ide"
747c804472Sopenharmony_ci}
757c804472Sopenharmony_ci
767c804472Sopenharmony_ciohos_source_set("util_rich") {
777c804472Sopenharmony_ci  libs = []
787c804472Sopenharmony_ci  sources = [
797c804472Sopenharmony_ci    "CallbackQueue.cpp",
807c804472Sopenharmony_ci    "CppTimer.cpp",
817c804472Sopenharmony_ci    "CppTimerManager.cpp",
827c804472Sopenharmony_ci    "EndianUtil.cpp",
837c804472Sopenharmony_ci    "Interrupter.cpp",
847c804472Sopenharmony_ci    "ModelManager.cpp",
857c804472Sopenharmony_ci    "PreviewerEngineLog.cpp",
867c804472Sopenharmony_ci    "PublicMethods.cpp",
877c804472Sopenharmony_ci    "SharedDataManager.cpp",
887c804472Sopenharmony_ci    "TimeTool.cpp",
897c804472Sopenharmony_ci    "WebSocketServer.cpp",
907c804472Sopenharmony_ci  ]
917c804472Sopenharmony_ci  cflags = [ "-std=c++17" ]
927c804472Sopenharmony_ci  if (platform == "mingw_x86_64") {
937c804472Sopenharmony_ci    sources += [
947c804472Sopenharmony_ci      "windows/CrashHandler.cpp",
957c804472Sopenharmony_ci      "windows/LocalSocket.cpp",
967c804472Sopenharmony_ci    ]
977c804472Sopenharmony_ci  } else {
987c804472Sopenharmony_ci    sources += [
997c804472Sopenharmony_ci      "unix/CrashHandler.cpp",
1007c804472Sopenharmony_ci      "unix/LocalSocket.cpp",
1017c804472Sopenharmony_ci    ]
1027c804472Sopenharmony_ci  }
1037c804472Sopenharmony_ci
1047c804472Sopenharmony_ci  include_dirs = [
1057c804472Sopenharmony_ci    ".",
1067c804472Sopenharmony_ci    "../cli/",
1077c804472Sopenharmony_ci    "../mock/rich/",
1087c804472Sopenharmony_ci    "//third_party/bounds_checking_function/include/",
1097c804472Sopenharmony_ci  ]
1107c804472Sopenharmony_ci
1117c804472Sopenharmony_ci  deps = [
1127c804472Sopenharmony_ci    ":ide_util",
1137c804472Sopenharmony_ci    "//third_party/libwebsockets:websockets_static",
1147c804472Sopenharmony_ci  ]
1157c804472Sopenharmony_ci  part_name = "previewer"
1167c804472Sopenharmony_ci  subsystem_name = "ide"
1177c804472Sopenharmony_ci}
1187c804472Sopenharmony_ci
1197c804472Sopenharmony_ciohos_shared_library("ide_util") {
1207c804472Sopenharmony_ci  if (is_linux || is_mac || is_mingw) {
1217c804472Sopenharmony_ci    libs = []
1227c804472Sopenharmony_ci    sources = [
1237c804472Sopenharmony_ci      "CommandParser.cpp",
1247c804472Sopenharmony_ci      "FileSystem.cpp",
1257c804472Sopenharmony_ci      "JsonReader.cpp",
1267c804472Sopenharmony_ci      "PreviewerEngineLog.cpp",
1277c804472Sopenharmony_ci      "TimeTool.cpp",
1287c804472Sopenharmony_ci      "TraceTool.cpp",
1297c804472Sopenharmony_ci    ]
1307c804472Sopenharmony_ci    cflags = [ "-std=c++17" ]
1317c804472Sopenharmony_ci    cflags_cc = cflags
1327c804472Sopenharmony_ci    if (platform == "mingw_x86_64") {
1337c804472Sopenharmony_ci      sources += [
1347c804472Sopenharmony_ci        "windows/ClipboardHelper.cpp",
1357c804472Sopenharmony_ci        "windows/KeyboardHelper.cpp",
1367c804472Sopenharmony_ci        "windows/LocalDate.cpp",
1377c804472Sopenharmony_ci        "windows/LocalSocket.cpp",
1387c804472Sopenharmony_ci        "windows/NativeFileSystem.cpp",
1397c804472Sopenharmony_ci        "windows/StringHelper.cpp",
1407c804472Sopenharmony_ci      ]
1417c804472Sopenharmony_ci      if (defined(enable_component_test) && enable_component_test) {
1427c804472Sopenharmony_ci        defines = [ "COMPONENT_TEST_ENABLED" ]
1437c804472Sopenharmony_ci      }
1447c804472Sopenharmony_ci    } else if (platform == "mac_arm64" || platform == "mac_x64") {
1457c804472Sopenharmony_ci      cflags += [ "-DNS_FORMAT_ARGUMENT(A)=" ]
1467c804472Sopenharmony_ci      sources += [
1477c804472Sopenharmony_ci        "unix/ClipboardHelper.cpp",
1487c804472Sopenharmony_ci        "unix/ClipboardObjc.mm",
1497c804472Sopenharmony_ci        "unix/KeyboardHelper.cpp",
1507c804472Sopenharmony_ci        "unix/KeyboardObjc.mm",
1517c804472Sopenharmony_ci        "unix/LocalDate.cpp",
1527c804472Sopenharmony_ci        "unix/LocalSocket.cpp",
1537c804472Sopenharmony_ci        "unix/NativeFileSystem.cpp",
1547c804472Sopenharmony_ci      ]
1557c804472Sopenharmony_ci      if (defined(enable_gn_2021)) {
1567c804472Sopenharmony_ci        frameworks = [
1577c804472Sopenharmony_ci          "Cocoa.framework",
1587c804472Sopenharmony_ci          "Carbon.framework",
1597c804472Sopenharmony_ci        ]
1607c804472Sopenharmony_ci      } else {
1617c804472Sopenharmony_ci        libs = [
1627c804472Sopenharmony_ci          "Cocoa.framework",
1637c804472Sopenharmony_ci          "Carbon.framework",
1647c804472Sopenharmony_ci        ]
1657c804472Sopenharmony_ci      }
1667c804472Sopenharmony_ci    } else if (platform == "linux_x64") {
1677c804472Sopenharmony_ci      sources += [
1687c804472Sopenharmony_ci        "linux/ClipboardHelper.cpp",
1697c804472Sopenharmony_ci        "linux/ClipboardX11.cpp",
1707c804472Sopenharmony_ci        "linux/KeyboardHelper.cpp",
1717c804472Sopenharmony_ci        "unix/LocalDate.cpp",
1727c804472Sopenharmony_ci        "unix/LocalSocket.cpp",
1737c804472Sopenharmony_ci        "unix/NativeFileSystem.cpp",
1747c804472Sopenharmony_ci      ]
1757c804472Sopenharmony_ci      libs += [ "X11" ]
1767c804472Sopenharmony_ci    }
1777c804472Sopenharmony_ci
1787c804472Sopenharmony_ci    include_dirs = [
1797c804472Sopenharmony_ci      ".",
1807c804472Sopenharmony_ci      "//third_party/bounds_checking_function/include/",
1817c804472Sopenharmony_ci      "//third_party/cJSON/",
1827c804472Sopenharmony_ci    ]
1837c804472Sopenharmony_ci
1847c804472Sopenharmony_ci    deps = [
1857c804472Sopenharmony_ci      "//third_party/bounds_checking_function:libsec_shared",
1867c804472Sopenharmony_ci      "//third_party/cJSON:cjson",
1877c804472Sopenharmony_ci    ]
1887c804472Sopenharmony_ci  }
1897c804472Sopenharmony_ci  part_name = "previewer"
1907c804472Sopenharmony_ci  subsystem_name = "ide"
1917c804472Sopenharmony_ci}
192