1fa7767c5Sopenharmony_ci# Copyright (C) 2023 Huawei Device Co., Ltd.
2fa7767c5Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3fa7767c5Sopenharmony_ci# you may not use this file except in compliance with the License.
4fa7767c5Sopenharmony_ci# You may obtain a copy of the License at
5fa7767c5Sopenharmony_ci#
6fa7767c5Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7fa7767c5Sopenharmony_ci#
8fa7767c5Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9fa7767c5Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10fa7767c5Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11fa7767c5Sopenharmony_ci# See the License for the specific language governing permissions and
12fa7767c5Sopenharmony_ci# limitations under the License.
13fa7767c5Sopenharmony_ci
14fa7767c5Sopenharmony_ciimport("//build/ohos.gni")
15fa7767c5Sopenharmony_ciimport("//foundation/multimedia/media_foundation/config.gni")
16fa7767c5Sopenharmony_ci
17fa7767c5Sopenharmony_ci#################################################################################################################capi
18fa7767c5Sopenharmony_ciconfig("media_foundation_capi_unit_test_config") {
19fa7767c5Sopenharmony_ci  include_dirs = [
20fa7767c5Sopenharmony_ci    "./",
21fa7767c5Sopenharmony_ci    "./include",
22fa7767c5Sopenharmony_ci    "../avbuffer",
23fa7767c5Sopenharmony_ci    "../avbuffer/capi",
24fa7767c5Sopenharmony_ci    "../format",
25fa7767c5Sopenharmony_ci    "../format/capi",
26fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface",
27fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/inner_api",
28fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/kits/c",
29fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/inner_api/buffer",
30fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/inner_api/meta",
31fa7767c5Sopenharmony_ci    "$histreamer_root_dir/src/buffer/avbuffer/include",
32fa7767c5Sopenharmony_ci  ]
33fa7767c5Sopenharmony_ci
34fa7767c5Sopenharmony_ci  cflags = [
35fa7767c5Sopenharmony_ci    "-std=c++17",
36fa7767c5Sopenharmony_ci    "-fno-rtti",
37fa7767c5Sopenharmony_ci    "-fexceptions",
38fa7767c5Sopenharmony_ci    "-Wall",
39fa7767c5Sopenharmony_ci    "-fno-common",
40fa7767c5Sopenharmony_ci    "-fstack-protector-strong",
41fa7767c5Sopenharmony_ci    "-Wshadow",
42fa7767c5Sopenharmony_ci    "-FPIC",
43fa7767c5Sopenharmony_ci    "-FS",
44fa7767c5Sopenharmony_ci    "-O2",
45fa7767c5Sopenharmony_ci    "-D_FORTIFY_SOURCE=2",
46fa7767c5Sopenharmony_ci    "-fvisibility=hidden",
47fa7767c5Sopenharmony_ci    "-Wformat=2",
48fa7767c5Sopenharmony_ci    "-Wdate-time",
49fa7767c5Sopenharmony_ci    "-Werror",
50fa7767c5Sopenharmony_ci    "-Wextra",
51fa7767c5Sopenharmony_ci    "-Wimplicit-fallthrough",
52fa7767c5Sopenharmony_ci    "-Wsign-compare",
53fa7767c5Sopenharmony_ci    "-Wunused-parameter",
54fa7767c5Sopenharmony_ci    "-Dprivate=public",
55fa7767c5Sopenharmony_ci    "-Dprotected=public",
56fa7767c5Sopenharmony_ci  ]
57fa7767c5Sopenharmony_ci
58fa7767c5Sopenharmony_ci  cflags_cc = cflags
59fa7767c5Sopenharmony_ci
60fa7767c5Sopenharmony_ci  defines = [
61fa7767c5Sopenharmony_ci    "HST_ANY_WITH_NO_RTTI",
62fa7767c5Sopenharmony_ci    "MEDIA_OHOS",
63fa7767c5Sopenharmony_ci  ]
64fa7767c5Sopenharmony_ci}
65fa7767c5Sopenharmony_ci
66fa7767c5Sopenharmony_ciohos_static_library("media_foundation_capi_unit_test") {
67fa7767c5Sopenharmony_ci  sanitize = {
68fa7767c5Sopenharmony_ci    cfi = true
69fa7767c5Sopenharmony_ci    cfi_cross_dso = true
70fa7767c5Sopenharmony_ci    debug = false
71fa7767c5Sopenharmony_ci  }
72fa7767c5Sopenharmony_ci  testonly = true
73fa7767c5Sopenharmony_ci  public_configs = [ ":media_foundation_capi_unit_test_config" ]
74fa7767c5Sopenharmony_ci
75fa7767c5Sopenharmony_ci  sources = [
76fa7767c5Sopenharmony_ci    "../avbuffer/capi/avbuffer_capi_mock.cpp",
77fa7767c5Sopenharmony_ci    "../avbuffer/capi/avbuffer_capi_mock_factory.cpp",
78fa7767c5Sopenharmony_ci    "../format/capi/avformat_capi_mock.cpp",
79fa7767c5Sopenharmony_ci    "../format/capi/avformat_capi_mock_factory.cpp",
80fa7767c5Sopenharmony_ci  ]
81fa7767c5Sopenharmony_ci
82fa7767c5Sopenharmony_ci  deps = [
83fa7767c5Sopenharmony_ci    "$histreamer_root_dir/src:media_foundation",
84fa7767c5Sopenharmony_ci    "$histreamer_root_dir/src/capi:capi_packages",
85fa7767c5Sopenharmony_ci  ]
86fa7767c5Sopenharmony_ci
87fa7767c5Sopenharmony_ci  external_deps = [
88fa7767c5Sopenharmony_ci    "bounds_checking_function:libsec_static",
89fa7767c5Sopenharmony_ci    "c_utils:utils",
90fa7767c5Sopenharmony_ci    "graphic_2d:libgraphic_utils",
91fa7767c5Sopenharmony_ci    "graphic_2d:librender_service_client",
92fa7767c5Sopenharmony_ci    "graphic_surface:surface",
93fa7767c5Sopenharmony_ci    "graphic_surface:sync_fence",
94fa7767c5Sopenharmony_ci    "hilog:libhilog",
95fa7767c5Sopenharmony_ci    "hisysevent:libhisysevent",
96fa7767c5Sopenharmony_ci    "hitrace:hitrace_meter",
97fa7767c5Sopenharmony_ci    "init:libbegetutil",
98fa7767c5Sopenharmony_ci    "ipc:ipc_core",
99fa7767c5Sopenharmony_ci    "window_manager:libwm",
100fa7767c5Sopenharmony_ci  ]
101fa7767c5Sopenharmony_ci
102fa7767c5Sopenharmony_ci  subsystem_name = "multimedia"
103fa7767c5Sopenharmony_ci  part_name = "media_foundation"
104fa7767c5Sopenharmony_ci}
105fa7767c5Sopenharmony_ci
106fa7767c5Sopenharmony_ci#################################################################################################################inner
107fa7767c5Sopenharmony_ciconfig("media_foundation_inner_unit_test_config") {
108fa7767c5Sopenharmony_ci  include_dirs = [
109fa7767c5Sopenharmony_ci    "./",
110fa7767c5Sopenharmony_ci    "./include",
111fa7767c5Sopenharmony_ci    "../avbuffer",
112fa7767c5Sopenharmony_ci    "../avbuffer/inner",
113fa7767c5Sopenharmony_ci    "../format",
114fa7767c5Sopenharmony_ci    "../format/inner",
115fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface",
116fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/kits/c",
117fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/inner_api",
118fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/inner_api/buffer",
119fa7767c5Sopenharmony_ci    "$histreamer_root_dir/interface/inner_api/meta",
120fa7767c5Sopenharmony_ci    "$histreamer_root_dir/src/buffer/avbuffer/include",
121fa7767c5Sopenharmony_ci  ]
122fa7767c5Sopenharmony_ci
123fa7767c5Sopenharmony_ci  cflags = [
124fa7767c5Sopenharmony_ci    "-std=c++17",
125fa7767c5Sopenharmony_ci    "-fno-rtti",
126fa7767c5Sopenharmony_ci    "-fexceptions",
127fa7767c5Sopenharmony_ci    "-Wall",
128fa7767c5Sopenharmony_ci    "-fno-common",
129fa7767c5Sopenharmony_ci    "-fstack-protector-strong",
130fa7767c5Sopenharmony_ci    "-Wshadow",
131fa7767c5Sopenharmony_ci    "-FPIC",
132fa7767c5Sopenharmony_ci    "-FS",
133fa7767c5Sopenharmony_ci    "-O2",
134fa7767c5Sopenharmony_ci    "-D_FORTIFY_SOURCE=2",
135fa7767c5Sopenharmony_ci    "-fvisibility=hidden",
136fa7767c5Sopenharmony_ci    "-Wformat=2",
137fa7767c5Sopenharmony_ci    "-Wdate-time",
138fa7767c5Sopenharmony_ci    "-Wextra",
139fa7767c5Sopenharmony_ci    "-Wimplicit-fallthrough",
140fa7767c5Sopenharmony_ci    "-Wsign-compare",
141fa7767c5Sopenharmony_ci    "-Dprivate=public",
142fa7767c5Sopenharmony_ci    "-Dprotected=public",
143fa7767c5Sopenharmony_ci  ]
144fa7767c5Sopenharmony_ci
145fa7767c5Sopenharmony_ci  cflags_cc = cflags
146fa7767c5Sopenharmony_ci
147fa7767c5Sopenharmony_ci  defines = [
148fa7767c5Sopenharmony_ci    "HST_ANY_WITH_NO_RTTI",
149fa7767c5Sopenharmony_ci    "MEDIA_OHOS",
150fa7767c5Sopenharmony_ci  ]
151fa7767c5Sopenharmony_ci}
152fa7767c5Sopenharmony_ci
153fa7767c5Sopenharmony_ciohos_static_library("media_foundation_inner_unit_test") {
154fa7767c5Sopenharmony_ci  sanitize = {
155fa7767c5Sopenharmony_ci    cfi = true
156fa7767c5Sopenharmony_ci    cfi_cross_dso = true
157fa7767c5Sopenharmony_ci    debug = false
158fa7767c5Sopenharmony_ci  }
159fa7767c5Sopenharmony_ci  testonly = true
160fa7767c5Sopenharmony_ci  public_configs = [ ":media_foundation_inner_unit_test_config" ]
161fa7767c5Sopenharmony_ci
162fa7767c5Sopenharmony_ci  sources = [
163fa7767c5Sopenharmony_ci    "../avbuffer/inner/avbuffer_inner_mock.cpp",
164fa7767c5Sopenharmony_ci    "../avbuffer/inner/avbuffer_inner_mock_factory.cpp",
165fa7767c5Sopenharmony_ci    "../format/inner/avformat_inner_mock.cpp",
166fa7767c5Sopenharmony_ci    "../format/inner/avformat_inner_mock_factory.cpp",
167fa7767c5Sopenharmony_ci  ]
168fa7767c5Sopenharmony_ci
169fa7767c5Sopenharmony_ci  deps = [ "$histreamer_root_dir/src:media_foundation" ]
170fa7767c5Sopenharmony_ci
171fa7767c5Sopenharmony_ci  external_deps = [
172fa7767c5Sopenharmony_ci    "bounds_checking_function:libsec_static",
173fa7767c5Sopenharmony_ci    "c_utils:utils",
174fa7767c5Sopenharmony_ci    "graphic_2d:libgraphic_utils",
175fa7767c5Sopenharmony_ci    "graphic_2d:librender_service_client",
176fa7767c5Sopenharmony_ci    "graphic_surface:surface",
177fa7767c5Sopenharmony_ci    "graphic_surface:sync_fence",
178fa7767c5Sopenharmony_ci    "hilog:libhilog",
179fa7767c5Sopenharmony_ci    "hisysevent:libhisysevent",
180fa7767c5Sopenharmony_ci    "hitrace:hitrace_meter",
181fa7767c5Sopenharmony_ci    "init:libbegetutil",
182fa7767c5Sopenharmony_ci    "ipc:ipc_core",
183fa7767c5Sopenharmony_ci    "window_manager:libwm",
184fa7767c5Sopenharmony_ci  ]
185fa7767c5Sopenharmony_ci
186fa7767c5Sopenharmony_ci  subsystem_name = "multimedia"
187fa7767c5Sopenharmony_ci  part_name = "media_foundation"
188fa7767c5Sopenharmony_ci}
189