• 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.
13import("//build/ohos.gni")
14import("//foundation/resourceschedule/ffrt/ffrt_stackless_coroutine.gni")
15
16defines = []
17
18if (use_stackless_coroutine) {
19  defines += [ "USE_STACKLESS_COROUTINE" ]
20}
21
22config("ffrt_config") {
23  visibility = [ ":*" ]
24  include_dirs = [
25    "src",
26    "interfaces/kits",
27    "interfaces/inner_api",
28    "src/dfx/log",
29    "//third_party/jsoncpp/include",
30    "//foundation/resourceschedule/frame_aware_sched/common/include/",
31    "//third_party/libunwind/include",
32    "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter/",
33  ]
34
35  ffrt_defaults_cflags = [
36    "-g",
37    "-D_FORTIFY_SOURCE=2",
38    "-O2",
39    "-fPIC",
40    "-Wno-unused-variable",
41    "-Wno-unused-function",
42    "-Wno-unused-value",
43    "-Wno-unused-private-field",
44    "-Wno-shadow",
45    "-Wno-float-equal",
46    "-Wno-unused-parameter",
47    "-DOHOS_STANDARD_SYSTEM",
48    "-DTASKSTAT_LOG_ENABLE=0",
49    "-DIDLE_WORKER_DESTRUCT",
50  ]
51
52  cflags = ffrt_defaults_cflags
53  cflags_cc = ffrt_defaults_cflags
54  cflags_cc += [ "-std=c++17" ]
55
56  ffrt_debug_defines = [
57    "FFRT_LOG_LEVEL=3",
58    "FFRT_BBOX_ENABLE",
59    "FFRT_OH_EVENT_RECORD",
60    "FFRT_CO_BACKTRACE_OH_ENABLE",
61    "FFRT_OH_TRACE_ENABLE",
62    "FFRT_OH_TASK_STAT_ENABLE",
63    "FFRT_TRACE_LEVEL=1",
64  ]
65
66  #ffrt_release_defines = [
67  #  "FFRT_LOG_LEVEL=0",
68  #  "FFRT_RELEASE",
69  #]
70
71  defines += ffrt_debug_defines
72
73  if (is_asan) {
74    defines += [ "ASAN_MODE" ]
75  }
76
77  #defines += ffrt_release_defines
78}
79
80ohos_shared_library("libffrt") {
81  public_configs = [ ":ffrt_config" ]
82
83  sources = [
84    "src/core/entity.cpp",
85    "src/core/task.cpp",
86    "src/core/task_ctx.cpp",
87    "src/core/version_ctx.cpp",
88    "src/dfx/bbox/bbox.cpp",
89    "src/dfx/log/ffrt_log.cpp",
90    "src/dfx/log/hmos/log_base.cpp",
91    "src/dfx/trace/ffrt_trace.cpp",
92    "src/dfx/watchdog/watchdog.cpp",
93    "src/eu/co2_context.c",
94    "src/eu/co_routine.cpp",
95    "src/eu/cpu_monitor.cpp",
96    "src/eu/cpu_worker.cpp",
97    "src/eu/cpuworker_manager.cpp",
98    "src/eu/execute_unit.cpp",
99    "src/eu/osattr_manager.cpp",
100    "src/eu/qos_config.cpp",
101    "src/eu/qos_convert.cpp",
102    "src/eu/qos_interface.cpp",
103    "src/eu/rtg_ioctl.cpp",
104    "src/eu/rtg_perf_ctrl.c",
105    "src/eu/worker_manager.cpp",
106    "src/eu/worker_thread.cpp",
107    "src/queue/queue_monitor.cpp",
108    "src/queue/serial_handler.cpp",
109    "src/queue/serial_looper.cpp",
110    "src/queue/serial_queue.cpp",
111    "src/queue/serial_queue_api.cpp",
112    "src/queue/serial_task.cpp",
113    "src/sched/deadline.cpp",
114    "src/sched/execute_ctx.cpp",
115    "src/sched/frame_interval.cpp",
116    "src/sched/interval.cpp",
117    "src/sched/load_tracking.cpp",
118    "src/sched/multi_workgroup.cpp",
119    "src/sched/sched_deadline.cpp",
120    "src/sched/task_manager.cpp",
121    "src/sched/task_state.cpp",
122    "src/sync/condition_variable.cpp",
123    "src/sync/delayed_worker.cpp",
124    "src/sync/io_poller.cpp",
125    "src/sync/mutex.cpp",
126    "src/sync/mutex_perf.cpp",
127    "src/sync/perf_counter.cpp",
128    "src/sync/sleep.cpp",
129    "src/sync/sync.cpp",
130    "src/sync/thread.cpp",
131    "src/sync/wait_queue.cpp",
132    "src/util/graph_check.cpp",
133    "src/util/task_deleter.cpp",
134  ]
135
136  external_deps = [
137    "faultloggerd:libbacktrace_local",
138    "frame_aware_sched:rtg_interface",
139    "hilog:libhilog",
140    "hisysevent:libhisysevent",
141    "hitrace:hitrace_meter",
142    "ipc:ipc_core",
143  ]
144
145  deps = [
146    "//third_party/bounds_checking_function:libsec_shared",
147    "//third_party/libunwind:libunwind",
148  ]
149
150  output_extension = "so"
151  part_name = "ffrt"
152  install_images = [
153    "system",
154    "updater",
155  ]
156  relative_install_dir = "chipset-sdk"
157}
158
159ohos_shared_library("ffrt_ndk") {
160  output_name = "ffrt"
161  configs = [ ":ffrt_config" ]
162
163  sources = [
164    "src/core/entity.cpp",
165    "src/core/task.cpp",
166    "src/core/task_ctx.cpp",
167    "src/core/version_ctx.cpp",
168    "src/dfx/bbox/bbox.cpp",
169    "src/dfx/log/ffrt_log.cpp",
170    "src/dfx/log/hmos/log_base.cpp",
171    "src/dfx/trace/ffrt_trace.cpp",
172    "src/dfx/watchdog/watchdog.cpp",
173    "src/eu/co2_context.c",
174    "src/eu/co_routine.cpp",
175    "src/eu/cpu_monitor.cpp",
176    "src/eu/cpu_worker.cpp",
177    "src/eu/cpuworker_manager.cpp",
178    "src/eu/execute_unit.cpp",
179    "src/eu/osattr_manager.cpp",
180    "src/eu/qos_config.cpp",
181    "src/eu/qos_convert.cpp",
182    "src/eu/qos_interface.cpp",
183    "src/eu/rtg_ioctl.cpp",
184    "src/eu/rtg_perf_ctrl.c",
185    "src/eu/worker_manager.cpp",
186    "src/eu/worker_thread.cpp",
187    "src/queue/queue_monitor.cpp",
188    "src/queue/serial_handler.cpp",
189    "src/queue/serial_looper.cpp",
190    "src/queue/serial_queue.cpp",
191    "src/queue/serial_queue_api.cpp",
192    "src/queue/serial_task.cpp",
193    "src/sched/deadline.cpp",
194    "src/sched/execute_ctx.cpp",
195    "src/sched/frame_interval.cpp",
196    "src/sched/interval.cpp",
197    "src/sched/load_tracking.cpp",
198    "src/sched/multi_workgroup.cpp",
199    "src/sched/sched_deadline.cpp",
200    "src/sched/task_manager.cpp",
201    "src/sched/task_state.cpp",
202    "src/sync/condition_variable.cpp",
203    "src/sync/delayed_worker.cpp",
204    "src/sync/io_poller.cpp",
205    "src/sync/mutex.cpp",
206    "src/sync/mutex_perf.cpp",
207    "src/sync/perf_counter.cpp",
208    "src/sync/sleep.cpp",
209    "src/sync/sync.cpp",
210    "src/sync/thread.cpp",
211    "src/sync/wait_queue.cpp",
212    "src/util/graph_check.cpp",
213    "src/util/task_deleter.cpp",
214  ]
215
216  external_deps = [
217    "faultloggerd:libbacktrace_local",
218    "frame_aware_sched:rtg_interface",
219    "hilog:libhilog",
220    "hisysevent:libhisysevent",
221    "hitrace:hitrace_meter",
222    "ipc:ipc_core",
223  ]
224
225  deps = [
226    "//third_party/bounds_checking_function:libsec_shared",
227    "//third_party/libunwind:libunwind",
228  ]
229
230  part_name = "ffrt"
231  subsystem_name = "resourceschedule"
232  innerapi_tags = [ "ndk" ]
233}
234