• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2021 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("//build/ohos/ace/ace.gni")
16import("//foundation/multimedia/player_framework/config.gni")
17
18group("napi_packages") {
19  deps = []
20  if (multimedia_player_framework_support_jsapi) {
21    deps += [
22      "//foundation/multimedia/player_framework/interfaces/kits/js:media",
23      "//foundation/multimedia/player_framework/interfaces/kits/js:media_js",
24    ]
25  }
26}
27
28js_declaration("media_js") {
29  part_name = "multimedia_player_framework"
30  sources = [ "./@ohos.multimedia.media.d.ts" ]
31}
32
33ohos_copy("media_declaration") {
34  sources = [ "./@ohos.multimedia.media.d.ts" ]
35  outputs = [ target_out_dir + "/$target_name/" ]
36  module_source_dir = target_out_dir + "/$target_name"
37  module_install_name = ""
38}
39
40ohos_shared_library("media") {
41  include_dirs = [
42    "//foundation/multimedia/player_framework/interfaces/kits/js",
43    "//foundation/multimedia/player_framework/frameworks/js/avplayer",
44    "//foundation/multimedia/player_framework/frameworks/js/avrecorder",
45    "//foundation/multimedia/player_framework/frameworks/js/player",
46    "//foundation/multimedia/player_framework/frameworks/js/recorder",
47    "//foundation/multimedia/player_framework/frameworks/js/media",
48    "//foundation/multimedia/player_framework/frameworks/js/common",
49    "//foundation/multimedia/player_framework/services/utils/include",
50    "//third_party/libuv/include",
51    "//third_party/bounds_checking_function/include",
52  ]
53
54  sources = [
55    "//foundation/multimedia/player_framework/frameworks/js/common/common_napi.cpp",
56    "//foundation/multimedia/player_framework/frameworks/js/media/media_capability_napi.cpp",
57    "//foundation/multimedia/player_framework/frameworks/js/media/media_enum_napi.cpp",
58    "//foundation/multimedia/player_framework/frameworks/js/media/native_module_ohos_media.cpp",
59  ]
60
61  if (multimedia_player_framework_support_player) {
62    sources += [
63      "//foundation/multimedia/player_framework/frameworks/js/player/audio_player_napi.cpp",
64      "//foundation/multimedia/player_framework/frameworks/js/player/player_callback_napi.cpp",
65    ]
66    if (multimedia_player_framework_support_video) {
67      sources += [
68        "//foundation/multimedia/player_framework/frameworks/js/player/video_callback_napi.cpp",
69        "//foundation/multimedia/player_framework/frameworks/js/player/video_player_napi.cpp",
70      ]
71    }
72  }
73
74  if (multimedia_player_framework_support_recorder) {
75    sources += [
76      "//foundation/multimedia/player_framework/frameworks/js/recorder/audio_recorder_napi.cpp",
77      "//foundation/multimedia/player_framework/frameworks/js/recorder/recorder_callback_napi.cpp",
78      "//foundation/multimedia/player_framework/frameworks/js/recorder/recorder_napi_utils.cpp",
79      "//foundation/multimedia/player_framework/frameworks/js/recorder/video_recorder_napi.cpp",
80    ]
81  }
82
83  if (multimedia_player_framework_support_recorder_js_api9) {
84    sources += [
85      "//foundation/multimedia/player_framework/frameworks/js/avrecorder/avrecorder_callback.cpp",
86      "//foundation/multimedia/player_framework/frameworks/js/avrecorder/avrecorder_napi.cpp",
87    ]
88  }
89
90  cflags = [
91    "-std=c++17",
92    "-fno-rtti",
93    "-fno-exceptions",
94    "-Wall",
95    "-fno-common",
96    "-fstack-protector-strong",
97    "-Wshadow",
98    "-FPIC",
99    "-FS",
100    "-O2",
101    "-D_FORTIFY_SOURCE=2",
102    "-fvisibility=hidden",
103    "-Wformat=2",
104    "-Wfloat-equal",
105    "-Wdate-time",
106    "-Werror",
107    "-Wextra",
108    "-Wimplicit-fallthrough",
109    "-Wsign-compare",
110    "-Wunused-parameter",
111  ]
112
113  deps = [
114    "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog",
115    "//foundation/arkui/napi:ace_napi",
116    "//foundation/multimedia/player_framework/interfaces/inner_api/native:media_client",
117    "//foundation/multimedia/player_framework/services/utils:media_service_utils",
118    "//third_party/bounds_checking_function:libsec_shared",
119  ]
120
121  if (multimedia_player_framework_support_player_js_api9) {
122    deps += [ "//foundation/multimedia/player_framework/frameworks/js/avplayer:media_avplayer" ]
123  }
124
125  if (multimedia_player_framework_support_video) {
126    deps += [ "//foundation/graphic/graphic_2d/frameworks/surface:surface" ]
127  }
128
129  external_deps = [
130    "c_utils:utils",
131    "hiviewdfx_hilog_native:libhilog",
132  ]
133
134  relative_install_dir = "module/multimedia"
135  part_name = "multimedia_player_framework"
136  subsystem_name = "multimedia"
137}
138