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