• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2023 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
17config("libhyper_graphic_manager_config") {
18  visibility = [ ":*" ]
19
20  include_dirs = [
21    "core/config",
22    "core/frame_rate_manager",
23    "core/hgm_screen_manager",
24    "core/utils",
25    "$graphic_2d_root/rosen/modules/composer/hdi_backend/include",
26    "$graphic_2d_root/rosen/modules/platform/ipc_core",
27    "$graphic_2d_root/rosen/modules/render_service/core",
28    "$graphic_2d_root/rosen/modules/render_service_base/include",
29    "$graphic_2d_root/rosen/modules/composer/vsync/include",
30    "$graphic_2d_root/utils/log",
31    "$graphic_2d_root/interfaces/inner_api/composer",
32    "$graphic_2d_root/interfaces/inner_api/common",
33    "$graphic_2d_root/rosen/modules/render_frame_trace/include",
34    "$graphic_2d_root/utils/log",
35    "$graphic_2d_root/utils/sandbox",
36  ]
37
38  cflags = [
39    "-g3",
40    "-fdata-sections",
41    "-ffunction-sections",
42    "-fno-asynchronous-unwind-tables",
43    "-fno-unwind-tables",
44    "-Os",
45  ]
46  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
47    if (!use_libfuzzer) {
48      cflags += [ "-flto=thin" ]
49    }
50  }
51}
52
53ohos_shared_library("libhyper_graphic_manager") {
54  branch_protector_ret = "pac_ret"
55  sanitize = {
56    cfi = true
57    cfi_cross_dso = true
58    cfi_vcall_icall_only = true
59    debug = false
60  }
61  configs = [ ":libhyper_graphic_manager_config" ]
62  version_script = "libhyper_graphic_manager.map"
63
64  sources = [
65    "core/config/hgm_config_callback_manager.cpp",
66    "core/config/xml_parser.cpp",
67    "core/frame_rate_manager/hgm_app_page_url_strategy.cpp",
68    "core/frame_rate_manager/hgm_energy_consumption_policy.cpp",
69    "core/frame_rate_manager/hgm_frame_rate_manager.cpp",
70    "core/frame_rate_manager/hgm_hfbc_config.cpp",
71    "core/frame_rate_manager/hgm_idle_detector.cpp",
72    "core/frame_rate_manager/hgm_multi_app_strategy.cpp",
73    "core/frame_rate_manager/hgm_pointer_manager.cpp",
74    "core/frame_rate_manager/hgm_task_handle_thread.cpp",
75    "core/frame_rate_manager/hgm_touch_manager.cpp",
76    "core/frame_rate_manager/hgm_vsync_generator_controller.cpp",
77    "core/hgm_screen_manager/hgm_core.cpp",
78    "core/hgm_screen_manager/hgm_screen.cpp",
79    "core/hgm_screen_manager/hgm_screen_info.cpp",
80    "core/utils/hgm_one_shot_timer.cpp",
81    "frame_rate_vote/rs_frame_rate_vote.cpp",
82    "frame_rate_vote/rs_video_frame_rate_vote.cpp",
83  ]
84  if (is_ohos && is_clang && (target_cpu == "arm" || target_cpu == "arm64")) {
85    cflags = []
86    if (!use_libfuzzer) {
87      cflags += [ "-flto=thin" ]
88    }
89    if (enhanced_opt) {
90      if (!use_libfuzzer) {
91        cflags += [ "-fwhole-program-vtables" ]
92      }
93    }
94  }
95
96  deps = [
97    "$graphic_2d_root/rosen/modules/composer:libcomposer",
98    "$graphic_2d_root/rosen/modules/render_frame_trace:render_frame_trace",
99    "$graphic_2d_root/rosen/modules/render_service_base:librender_service_base",
100  ]
101
102  external_deps = [
103    "c_utils:utils",
104    "config_policy:configpolicy_util",
105    "eventhandler:libeventhandler",
106    "ffrt:libffrt",
107    "hicollie:libhicollie",
108    "hisysevent:libhisysevent",
109    "hitrace:hitrace_meter",
110    "init:libbeget_proxy",
111    "init:libbegetutil",
112    "ipc:ipc_core",
113    "libxml2:libxml2",
114    "samgr:samgr_proxy",
115  ]
116
117  if (defined(graphic_2d_hgm_configs.vendor_root)) {
118    sources += graphic_2d_hgm_configs.libhyper_graphic_manager_ext_sources
119    sources -= graphic_2d_hgm_configs.libhyper_graphic_manager_ext_sources_del
120  }
121
122  part_name = "graphic_2d"
123  subsystem_name = "graphic"
124
125  if (is_standard_system) {
126    external_deps += [ "hilog:libhilog" ]
127  } else {
128    external_deps += [ "hilog:libhilog" ]
129  }
130}
131