1020a203aSopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd.
2020a203aSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3020a203aSopenharmony_ci# you may not use this file except in compliance with the License.
4020a203aSopenharmony_ci# You may obtain a copy of the License at
5020a203aSopenharmony_ci#
6020a203aSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7020a203aSopenharmony_ci#
8020a203aSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9020a203aSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10020a203aSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11020a203aSopenharmony_ci# See the License for the specific language governing permissions and
12020a203aSopenharmony_ci# limitations under the License.
13020a203aSopenharmony_ci
14020a203aSopenharmony_ciimport("//base/hiviewdfx/hiview/hiview.gni")
15020a203aSopenharmony_ciimport("//build/ohos.gni")
16020a203aSopenharmony_ci
17020a203aSopenharmony_ciif (hiview_enable_performance_monitor) {
18020a203aSopenharmony_ci  config("xperf_service_config") {
19020a203aSopenharmony_ci    visibility = [ "*:*" ]
20020a203aSopenharmony_ci
21020a203aSopenharmony_ci    include_dirs = [
22020a203aSopenharmony_ci      ".",
23020a203aSopenharmony_ci      "common",
24020a203aSopenharmony_ci      "config",
25020a203aSopenharmony_ci      "context",
26020a203aSopenharmony_ci      "event_publisher",
27020a203aSopenharmony_ci      "executor",
28020a203aSopenharmony_ci      "monitor",
29020a203aSopenharmony_ci      "monitor/converter",
30020a203aSopenharmony_ci      "monitor/gateway",
31020a203aSopenharmony_ci      "monitor/gateway/executor",
32020a203aSopenharmony_ci      "monitor/gateway/reporter",
33020a203aSopenharmony_ci      "persistence",
34020a203aSopenharmony_ci      "reporter",
35020a203aSopenharmony_ci      "reporter/adapter",
36020a203aSopenharmony_ci      "reporter/event_poster",
37020a203aSopenharmony_ci      "reporter/infrastructure",
38020a203aSopenharmony_ci      "scene_data_processor",
39020a203aSopenharmony_ci      "scene_data_processor/gateway",
40020a203aSopenharmony_ci      "timer",
41020a203aSopenharmony_ci
42020a203aSopenharmony_ci      "$hiview_base/event_raw/include",
43020a203aSopenharmony_ci      "$hiview_base/event_publish/include",
44020a203aSopenharmony_ci      "$hiview_base/include",
45020a203aSopenharmony_ci      "$hiview_base/logstore/include",
46020a203aSopenharmony_ci      "$hiview_base/utility/include",
47020a203aSopenharmony_ci      "$hiview_root/include",
48020a203aSopenharmony_ci      "$hiview_root/interfaces/inner_api/unified_collection",
49020a203aSopenharmony_ci      "$hiview_root/interfaces/inner_api/unified_collection/utility",
50020a203aSopenharmony_ci      "$hiview_plugin/faultlogger/common",
51020a203aSopenharmony_ci      "$hiview_plugin/faultlogger/service",
52020a203aSopenharmony_ci    ]
53020a203aSopenharmony_ci
54020a203aSopenharmony_ci    cflags_cc = [
55020a203aSopenharmony_ci      "-DENABLE_SCREEM",
56020a203aSopenharmony_ci      "-fexceptions",
57020a203aSopenharmony_ci    ]
58020a203aSopenharmony_ci  }
59020a203aSopenharmony_ci}
60020a203aSopenharmony_ci
61020a203aSopenharmony_ciohos_prebuilt_etc("hiviewxperf_event_file") {
62020a203aSopenharmony_ci  source = "config/event/XperfPlugin"
63020a203aSopenharmony_ci  part_name = "hiview"
64020a203aSopenharmony_ci  subsystem_name = "hiviewdfx"
65020a203aSopenharmony_ci  relative_install_dir = "hiview/listener_rule"
66020a203aSopenharmony_ci}
67020a203aSopenharmony_ci
68020a203aSopenharmony_ciohos_prebuilt_etc("xperfplugins_config") {
69020a203aSopenharmony_ci  source = "config/xperformance_plugin_config"
70020a203aSopenharmony_ci  part_name = "hiview"
71020a203aSopenharmony_ci  subsystem_name = "hiviewdfx"
72020a203aSopenharmony_ci  relative_install_dir = "hiview"
73020a203aSopenharmony_ci}
74020a203aSopenharmony_ci
75020a203aSopenharmony_ciohos_shared_library("xperformance") {
76020a203aSopenharmony_ci  if (hiview_enable_performance_monitor) {
77020a203aSopenharmony_ci    part_name = "hiview"
78020a203aSopenharmony_ci    subsystem_name = "hiviewdfx"
79020a203aSopenharmony_ci
80020a203aSopenharmony_ci    sanitize = {
81020a203aSopenharmony_ci      cfi = true
82020a203aSopenharmony_ci      cfi_cross_dso = true
83020a203aSopenharmony_ci      debug = false
84020a203aSopenharmony_ci    }
85020a203aSopenharmony_ci
86020a203aSopenharmony_ci    sources = [
87020a203aSopenharmony_ci      "XperfPlugin.cpp",
88020a203aSopenharmony_ci      "context/BaseContext.cpp",
89020a203aSopenharmony_ci      "context/NormalContext.cpp",
90020a203aSopenharmony_ci      "executor/ThrExecutor.cpp",
91020a203aSopenharmony_ci      "executor/ThrTaskContainer.cpp",
92020a203aSopenharmony_ci      "monitor/AppLaunchMonitor.cpp",
93020a203aSopenharmony_ci      "monitor/DefaultMonitor.cpp",
94020a203aSopenharmony_ci      "monitor/JankAnimatorMonitor.cpp",
95020a203aSopenharmony_ci      "persistence/AppLaunchSceneDbAdapter.cpp",
96020a203aSopenharmony_ci      "reporter/adapter/AppStartReporterAdapter.cpp",
97020a203aSopenharmony_ci      "reporter/adapter/JankAnimatorReporterAdapter.cpp",
98020a203aSopenharmony_ci      "reporter/adapter/SimpleAppStartReporterAdapter.cpp",
99020a203aSopenharmony_ci      "reporter/event_poster/EventsPoster.cpp",
100020a203aSopenharmony_ci      "reporter/infrastructure/AppStartReporter.cpp",
101020a203aSopenharmony_ci      "reporter/infrastructure/JankAnimatorReporter.cpp",
102020a203aSopenharmony_ci      "scene_data_processor/AnimatorSceneDataProcessor.cpp",
103020a203aSopenharmony_ci      "scene_data_processor/AppLaunchSceneDataProcessor.cpp",
104020a203aSopenharmony_ci      "scene_data_processor/SceneDataMapDbAdapter.cpp",
105020a203aSopenharmony_ci      "timer/AppTimerAdapter.cpp",
106020a203aSopenharmony_ci      "timer/SceneTimerOhImpl.cpp",
107020a203aSopenharmony_ci    ]
108020a203aSopenharmony_ci
109020a203aSopenharmony_ci    configs = [ ":xperf_service_config" ]
110020a203aSopenharmony_ci
111020a203aSopenharmony_ci    deps = [
112020a203aSopenharmony_ci      ":hiviewxperf_event_file",
113020a203aSopenharmony_ci      ":xperfplugins_config",
114020a203aSopenharmony_ci      "$hiview_base:hiviewbase",
115020a203aSopenharmony_ci      "config:config",
116020a203aSopenharmony_ci    ]
117020a203aSopenharmony_ci
118020a203aSopenharmony_ci    external_deps = [
119020a203aSopenharmony_ci      "c_utils:utils",
120020a203aSopenharmony_ci      "hilog:libhilog",
121020a203aSopenharmony_ci      "hisysevent:libhisysevent",
122020a203aSopenharmony_ci      "init:libbegetutil",
123020a203aSopenharmony_ci      "ipc:ipc_core",
124020a203aSopenharmony_ci      "samgr:samgr_proxy",
125020a203aSopenharmony_ci    ]
126020a203aSopenharmony_ci  }
127020a203aSopenharmony_ci}
128020a203aSopenharmony_ci
129020a203aSopenharmony_cigroup("unittest") {
130020a203aSopenharmony_ci  testonly = true
131020a203aSopenharmony_ci  deps = []
132020a203aSopenharmony_ci}
133020a203aSopenharmony_ci
134020a203aSopenharmony_cigroup("moduletest") {
135020a203aSopenharmony_ci  testonly = true
136020a203aSopenharmony_ci  deps = []
137020a203aSopenharmony_ci}
138