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