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/multimedia/media_foundation/config.gni")
16
17#################################################################################################################capi
18config("media_foundation_capi_unit_test_config") {
19  include_dirs = [
20    "./",
21    "./include",
22    "../avbuffer",
23    "../avbuffer/capi",
24    "../format",
25    "../format/capi",
26    "$histreamer_root_dir/interface",
27    "$histreamer_root_dir/interface/inner_api",
28    "$histreamer_root_dir/interface/kits/c",
29    "$histreamer_root_dir/interface/inner_api/buffer",
30    "$histreamer_root_dir/interface/inner_api/meta",
31    "$histreamer_root_dir/src/buffer/avbuffer/include",
32  ]
33
34  cflags = [
35    "-std=c++17",
36    "-fno-rtti",
37    "-fexceptions",
38    "-Wall",
39    "-fno-common",
40    "-fstack-protector-strong",
41    "-Wshadow",
42    "-FPIC",
43    "-FS",
44    "-O2",
45    "-D_FORTIFY_SOURCE=2",
46    "-fvisibility=hidden",
47    "-Wformat=2",
48    "-Wdate-time",
49    "-Werror",
50    "-Wextra",
51    "-Wimplicit-fallthrough",
52    "-Wsign-compare",
53    "-Wunused-parameter",
54    "-Dprivate=public",
55    "-Dprotected=public",
56  ]
57
58  cflags_cc = cflags
59
60  defines = [
61    "HST_ANY_WITH_NO_RTTI",
62    "MEDIA_OHOS",
63  ]
64}
65
66ohos_static_library("media_foundation_capi_unit_test") {
67  sanitize = {
68    cfi = true
69    cfi_cross_dso = true
70    debug = false
71  }
72  testonly = true
73  public_configs = [ ":media_foundation_capi_unit_test_config" ]
74
75  sources = [
76    "../avbuffer/capi/avbuffer_capi_mock.cpp",
77    "../avbuffer/capi/avbuffer_capi_mock_factory.cpp",
78    "../format/capi/avformat_capi_mock.cpp",
79    "../format/capi/avformat_capi_mock_factory.cpp",
80  ]
81
82  deps = [
83    "$histreamer_root_dir/src:media_foundation",
84    "$histreamer_root_dir/src/capi:capi_packages",
85  ]
86
87  external_deps = [
88    "bounds_checking_function:libsec_static",
89    "c_utils:utils",
90    "graphic_2d:libgraphic_utils",
91    "graphic_2d:librender_service_client",
92    "graphic_surface:surface",
93    "graphic_surface:sync_fence",
94    "hilog:libhilog",
95    "hisysevent:libhisysevent",
96    "hitrace:hitrace_meter",
97    "init:libbegetutil",
98    "ipc:ipc_core",
99    "window_manager:libwm",
100  ]
101
102  subsystem_name = "multimedia"
103  part_name = "media_foundation"
104}
105
106#################################################################################################################inner
107config("media_foundation_inner_unit_test_config") {
108  include_dirs = [
109    "./",
110    "./include",
111    "../avbuffer",
112    "../avbuffer/inner",
113    "../format",
114    "../format/inner",
115    "$histreamer_root_dir/interface",
116    "$histreamer_root_dir/interface/kits/c",
117    "$histreamer_root_dir/interface/inner_api",
118    "$histreamer_root_dir/interface/inner_api/buffer",
119    "$histreamer_root_dir/interface/inner_api/meta",
120    "$histreamer_root_dir/src/buffer/avbuffer/include",
121  ]
122
123  cflags = [
124    "-std=c++17",
125    "-fno-rtti",
126    "-fexceptions",
127    "-Wall",
128    "-fno-common",
129    "-fstack-protector-strong",
130    "-Wshadow",
131    "-FPIC",
132    "-FS",
133    "-O2",
134    "-D_FORTIFY_SOURCE=2",
135    "-fvisibility=hidden",
136    "-Wformat=2",
137    "-Wdate-time",
138    "-Wextra",
139    "-Wimplicit-fallthrough",
140    "-Wsign-compare",
141    "-Dprivate=public",
142    "-Dprotected=public",
143  ]
144
145  cflags_cc = cflags
146
147  defines = [
148    "HST_ANY_WITH_NO_RTTI",
149    "MEDIA_OHOS",
150  ]
151}
152
153ohos_static_library("media_foundation_inner_unit_test") {
154  sanitize = {
155    cfi = true
156    cfi_cross_dso = true
157    debug = false
158  }
159  testonly = true
160  public_configs = [ ":media_foundation_inner_unit_test_config" ]
161
162  sources = [
163    "../avbuffer/inner/avbuffer_inner_mock.cpp",
164    "../avbuffer/inner/avbuffer_inner_mock_factory.cpp",
165    "../format/inner/avformat_inner_mock.cpp",
166    "../format/inner/avformat_inner_mock_factory.cpp",
167  ]
168
169  deps = [ "$histreamer_root_dir/src:media_foundation" ]
170
171  external_deps = [
172    "bounds_checking_function:libsec_static",
173    "c_utils:utils",
174    "graphic_2d:libgraphic_utils",
175    "graphic_2d:librender_service_client",
176    "graphic_surface:surface",
177    "graphic_surface:sync_fence",
178    "hilog:libhilog",
179    "hisysevent:libhisysevent",
180    "hitrace:hitrace_meter",
181    "init:libbegetutil",
182    "ipc:ipc_core",
183    "window_manager:libwm",
184  ]
185
186  subsystem_name = "multimedia"
187  part_name = "media_foundation"
188}
189