1# Copyright (c) 2023-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/ohos.gni")
15import("//foundation/graphic/graphic_2d/graphic_config.gni")
16
17ohos_source_set("render_frame_trace") {
18  include_dirs = [ "include" ]
19  sources = [
20    "src/frame_rate_report.cpp",
21    "src/render_frame_trace.cpp",
22  ]
23  cflags = [ "-fstack-protector-all" ]
24  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
25    if (!use_libfuzzer) {
26      cflags += [ "-flto=thin" ]
27    }
28    if (enhanced_opt) {
29      if (!use_libfuzzer) {
30        cflags += [ "-fwhole-program-vtables" ]
31      }
32    }
33  }
34  external_deps = []
35  if (is_arkui_x) {
36    deps = [ "//third_party/jsoncpp:jsoncpp_static" ]
37  } else {
38    external_deps += [ "jsoncpp:jsoncpp" ]
39  }
40  if (!build_ohos_sdk) {
41    external_deps += [
42      "ipc:ipc_single",
43      "qos_manager:concurrent_task_client",
44    ]
45    if (!is_arkui_x) {
46      defines = [ "QOS_MANAGER" ]
47    }
48  }
49  if (defined(global_parts_info)) {
50    if (defined(global_parts_info.resourceschedule_frame_aware_sched)) {
51      sources += [ "src/render_frame_trace_impl.cpp" ]
52      external_deps += [ "frame_aware_sched:frame_trace_intf" ]
53      defines += [ "FRAME_TRACE_ENABLE" ]
54    }
55  }
56  if (defined(global_parts_info) &&
57      defined(global_parts_info.resourceschedule_resource_schedule_service)) {
58    external_deps += [ "resource_schedule_service:ressched_client" ]
59    defines += [ "RES_SCHED_ENABLE" ]
60  }
61  part_name = "graphic_2d"
62  subsystem_name = "graphic"
63}
64