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_var.gni") 15 16# ndk library, ndk header configuration 17_ndk_library_targets = [ 18 "//interface/sdk_c/sensors/miscdevice/vibrator:lib_vibrator_ndk", 19 "//interface/sdk_c/sensors/miscdevice/vibrator:ndk_vibrator_header", 20 "//interface/sdk_c/third_party/zlib:libz_ndk", 21 "//interface/sdk_c/third_party/zlib:zlib_header", 22 "//interface/sdk_c/global/resource_management:librawfile_ndk", 23 "//interface/sdk_c/global/resource_management:rawfile_header", 24 "//interface/sdk_c/global/resource_management:native_resmgr_ndk", 25 "//interface/sdk_c/global/resource_management:native_resmgr_header", 26 "//interface/sdk_c/hiviewdfx/hiappevent:libhiappevent_header", 27 "//interface/sdk_c/hiviewdfx/hiappevent:libhiappevent_ndk", 28 "//interface/sdk_c/hiviewdfx/hidebug:libohhidebug", 29 "//interface/sdk_c/hiviewdfx/hidebug:oh_hidebug_header", 30 "//interface/sdk_c/hiviewdfx/hicollie:libohhicollie", 31 "//interface/sdk_c/hiviewdfx/hicollie:oh_hicollie_header", 32 "//interface/sdk_c/hiviewdfx/hilog:hilog_header", 33 "//interface/sdk_c/hiviewdfx/hilog:libhilog_ndk", 34 "//interface/sdk_c/hiviewdfx/hitrace:hitrace_header", 35 "//interface/sdk_c/hiviewdfx/hitrace:libhitrace_ndk", 36 "//interface/sdk_c/network/netstack/net_websocket:libnet_websocket", 37 "//interface/sdk_c/network/netstack/net_websocket:websocket_header", 38 "//interface/sdk_c/network/netssl:libnet_ssl_ndk", 39 "//interface/sdk_c/network/netssl:net_ssl_header", 40 "//interface/sdk_c/security/access_token:libability_access_control", 41 "//interface/sdk_c/security/access_token:accesstoken_header", 42 "//interface/sdk_c/security/huks:libhuks_ndk", 43 "//interface/sdk_c/security/huks:huks_header", 44 "//interface/sdk_c/security/asset:libasset_ndk", 45 "//interface/sdk_c/security/asset:asset_header", 46 "//interface/sdk_c/startup/init/syscap:libdeviceinfo_ndk", 47 "//interface/sdk_c/startup/init/syscap:deviceinfo_header", 48 "//interface/sdk_c/third_party/mindspore/kits:mindspore_header", 49 "//interface/sdk_c/third_party/mindspore/kits:mindspore_lib", 50 "//interface/sdk_c/web/webview/interfaces/native:web_header", 51 "//interface/sdk_c/web/webview/interfaces/native:libohweb", 52 "//interface/sdk_c/BasicServicesKit:libos_account_ndk", 53 "//interface/sdk_c/BasicServicesKit:os_account_ndk_header", 54 "//interface/sdk_c/ability/ability_runtime/child_process:child_process_header", 55 "//interface/sdk_c/ability/ability_runtime/child_process:libchild_process", 56 "//interface/sdk_c/AbilityKit/ability_runtime:ability_runtime_ndk_header", 57 "//interface/sdk_c/AbilityKit/ability_runtime:libability_runtime", 58 "//interface/sdk_c/arkui/ace_engine/native:ace_header", 59 "//interface/sdk_c/arkui/ace_engine/native:arkui_header", 60 "//interface/sdk_c/arkui/ace_engine/native:libace_ndk", 61 "//interface/sdk_c/arkui/napi:libnapi_ndk", 62 "//interface/sdk_c/arkui/napi:napi_header", 63 "//interface/sdk_c/arkui/window_manager:window_manager_header", 64 "//interface/sdk_c/arkui/window_manager:native_window_manager", 65 "//interface/sdk_c/arkui/display_manager:display_manager_header", 66 "//interface/sdk_c/arkui/display_manager:native_display_manager", 67 "//interface/sdk_c/ark_runtime/jsvm:libjsvm_ndk", 68 "//interface/sdk_c/ark_runtime/jsvm:jsvm_header", 69 "//interface/sdk_c/bundlemanager/bundle_framework/bundle:bundle_header", 70 "//interface/sdk_c/bundlemanager/bundle_framework/bundle:libbundle_ndk", 71 "//interface/sdk_c/third_party/node:node_header", 72 "//interface/sdk_c/graphic/graphic_2d/EGL:libEGL_ndk", 73 "//interface/sdk_c/graphic/graphic_2d/EGL:EGL_header", 74 "//interface/sdk_c/graphic/graphic_2d/GLES2:libGLESv2_ndk", 75 "//interface/sdk_c/graphic/graphic_2d/GLES2:GLES2_header", 76 "//interface/sdk_c/graphic/graphic_2d/GLES3:libGLESv3_ndk", 77 "//interface/sdk_c/graphic/graphic_2d/GLES3:GLES3_header", 78 "//interface/sdk_c/graphic/graphic_2d/KHR:KHR_header", 79 "//interface/sdk_c/graphic/graphic_2d/native_window:libnative_window_ndk", 80 "//interface/sdk_c/graphic/graphic_2d/native_window:native_window_header", 81 "//interface/sdk_c/graphic/graphic_2d/native_buffer:libnative_buffer_ndk", 82 "//interface/sdk_c/graphic/graphic_2d/native_buffer:native_buffer_header", 83 "//interface/sdk_c/graphic/graphic_2d/native_image:libnative_image_ndk", 84 "//interface/sdk_c/graphic/graphic_2d/native_image:native_image_header", 85 "//interface/sdk_c/graphic/graphic_2d/native_vsync:libnative_vsync_ndk", 86 "//interface/sdk_c/graphic/graphic_2d/native_vsync:native_vsync_header", 87 "//interface/sdk_c/graphic/graphic_2d/native_color_space_manager:libnative_color_space_manager_ndk", 88 "//interface/sdk_c/graphic/graphic_2d/native_color_space_manager:native_color_space_manager_header", 89 "//interface/sdk_c/graphic/graphic_2d/native_drawing:libnative_drawing_ndk", 90 "//interface/sdk_c/graphic/graphic_2d/native_drawing:native_drawing_header", 91 "//interface/sdk_c/graphic/graphic_2d/native_effect:libnative_effect_ndk", 92 "//interface/sdk_c/graphic/graphic_2d/native_effect:native_effect_header", 93 "//interface/sdk_c/IPCKit:libipc_capi", 94 "//interface/sdk_c/IPCKit:ipc_capi_header", 95 "//interface/sdk_c/ConnectivityKit/bluetooth:libbluetooth_ndk", 96 "//interface/sdk_c/ConnectivityKit/bluetooth:bluetooth_ndk_header", 97 "//interface/sdk_c/LocationKit:liblocation_ndk", 98 "//interface/sdk_c/LocationKit:location_ndk_header", 99 "//interface/sdk_c/NotificationKit:libnotification_ndk", 100 "//interface/sdk_c/NotificationKit:ohnotification_header", 101 "//interface/sdk_c/third_party/libuv:libuv_ndk", 102 "//interface/sdk_c/third_party/libuv:libuv_header", 103 "//interface/sdk_c/third_party/libuv:libuv_uv_header", 104 "//interface/sdk_c/third_party/icu4c:libicu_ndk", 105 "//interface/sdk_c/third_party/icu4c:icu_unicode_header", 106 "//interface/sdk_c/multimedia/av_codec/audio_decoder:libnative_media_adec", 107 "//interface/sdk_c/multimedia/av_codec/audio_decoder:native_media_adec_header", 108 "//interface/sdk_c/multimedia/av_codec/audio_encoder:libnative_media_aenc", 109 "//interface/sdk_c/multimedia/av_codec/audio_encoder:native_media_aenc_header", 110 "//interface/sdk_c/multimedia/av_codec/audio_codec:libnative_media_acodec", 111 "//interface/sdk_c/multimedia/av_codec/audio_codec:native_media_acodec_header", 112 "//interface/sdk_c/multimedia/av_codec/video_decoder:libnative_media_vdec", 113 "//interface/sdk_c/multimedia/av_codec/video_decoder:native_media_vdec_header", 114 "//interface/sdk_c/multimedia/av_codec/video_encoder:libnative_media_venc", 115 "//interface/sdk_c/multimedia/av_codec/video_encoder:native_media_venc_header", 116 "//interface/sdk_c/multimedia/av_codec/codec_base:libnative_media_codecbase", 117 "//interface/sdk_c/multimedia/av_codec/codec_base:native_media_codecbase_header", 118 "//interface/sdk_c/multimedia/av_codec/avmuxer:libnative_media_avmuxer", 119 "//interface/sdk_c/multimedia/av_codec/avmuxer:native_media_avmuxer_header", 120 "//interface/sdk_c/multimedia/av_codec/avdemuxer:libnative_media_avdemuxer", 121 "//interface/sdk_c/multimedia/av_codec/avdemuxer:native_media_avdemuxer_header", 122 "//interface/sdk_c/multimedia/av_codec/avsource:libnative_media_avsource", 123 "//interface/sdk_c/multimedia/av_codec/avsource:native_media_avsource_header", 124 "//interface/sdk_c/multimedia/av_codec/avcencinfo:libnative_media_avcencinfo", 125 "//interface/sdk_c/multimedia/av_codec/avcencinfo:native_media_avcencinfo_header", 126 "//interface/sdk_c/multimedia/drm_framework:libnative_drm", 127 "//interface/sdk_c/multimedia/drm_framework:native_drm_header", 128 "//interface/sdk_c/multimedia/media_foundation/core:native_media_core_header", 129 "//interface/sdk_c/multimedia/media_foundation/core:native_media_core_common_header", 130 "//interface/sdk_c/multimedia/media_foundation/core:libnative_media_core", 131 "//interface/sdk_c/multimedia/media_library/media_asset_manager:libmedia_asset_manager", 132 "//interface/sdk_c/multimedia/media_library/media_asset_manager:media_asset_manager_header", 133 "//interface/sdk_c/multimedia/player_framework/avscreen_capture:libnative_avscreen_capture", 134 "//interface/sdk_c/multimedia/player_framework/avscreen_capture:native_avscreen_capture_header", 135 "//interface/sdk_c/multimedia/player_framework/avplayer:libavplayer", 136 "//interface/sdk_c/multimedia/player_framework/avplayer:avplayer_header", 137 "//interface/sdk_c/multimedia/audio_framework:libohaudio_ndk", 138 "//interface/sdk_c/multimedia/audio_framework:ohaudio_header", 139 "//interface/sdk_c/multimedia/av_session:libohavsession_ndk", 140 "//interface/sdk_c/multimedia/av_session:ohavsession_header", 141 "//interface/sdk_c/multimedia/camera_framework:libohcamera", 142 "//interface/sdk_c/multimedia/camera_framework:camera_ndk_header", 143 "//interface/sdk_c/multimedia/image_framework:libpixelmap_ndk", 144 "//interface/sdk_c/multimedia/image_framework:libpixelmap", 145 "//interface/sdk_c/multimedia/image_framework:libpixelmap_header", 146 "//interface/sdk_c/multimedia/image_framework:image_header", 147 "//interface/sdk_c/multimedia/image_framework:libimage_ndk", 148 "//interface/sdk_c/multimedia/image_framework:image_ndk_header", 149 "//interface/sdk_c/multimedia/image_framework:libimage_receiver_ndk", 150 "//interface/sdk_c/multimedia/image_framework:image_receiver_ndk_header", 151 "//interface/sdk_c/multimedia/image_framework:libimage_source_ndk", 152 "//interface/sdk_c/multimedia/image_framework:image_source_ndk_header", 153 "//interface/sdk_c/multimedia/image_framework:libimage_source", 154 "//interface/sdk_c/multimedia/image_framework:libimage_source_header", 155 "//interface/sdk_c/multimedia/image_framework:libimage_packer_ndk", 156 "//interface/sdk_c/multimedia/image_framework:image_packer_ndk_header", 157 "//interface/sdk_c/multimedia/image_framework:libimage_packer", 158 "//interface/sdk_c/multimedia/image_framework:libimage_packer_header", 159 "//interface/sdk_c/multimedia/image_framework:libpicture", 160 "//interface/sdk_c/multimedia/image_framework:libpicture_header", 161 "//interface/sdk_c/multimedia/image_framework:libimage_common", 162 "//interface/sdk_c/multimedia/image_framework:libimage_common_header", 163 "//interface/sdk_c/multimedia/image_effect:libimage_effect", 164 "//interface/sdk_c/multimedia/image_effect:libimage_effect_header", 165 "//interface/sdk_c/multimedia/video_processing_engine/video_processing:libvideo_processing_ndk", 166 "//interface/sdk_c/multimedia/video_processing_engine/video_processing:video_processing_ndk_headers", 167 "//interface/sdk_c/multimedia/video_processing_engine/image_processing:libimage_processing_ndk", 168 "//interface/sdk_c/multimedia/video_processing_engine/image_processing:image_processing_ndk_headers", 169 "//interface/sdk_c/third_party/openSLES:sles_header", 170 "//interface/sdk_c/third_party/openSLES:libOpenSLES_ndk", 171 "//interface/sdk_c/ai/neural_network_runtime:libneural_network_core_ndk", 172 "//interface/sdk_c/ai/neural_network_runtime:libneural_network_runtime_ndk", 173 "//interface/sdk_c/ai/neural_network_runtime:libneural_network_runtime_header", 174 "//interface/sdk_c/commonlibrary/memory_utils/libpurgeablemem:libpurgeable_memory_ndk", 175 "//interface/sdk_c/commonlibrary/memory_utils/libpurgeablemem:purgeable_memory_header", 176 "//interface/sdk_c/distributeddatamgr/relational_store:data_ndk_header", 177 "//interface/sdk_c/distributeddatamgr/relational_store:native_rdb_ndk_header", 178 "//interface/sdk_c/distributeddatamgr/relational_store:libnative_rdb_ndk", 179 "//interface/sdk_c/distributeddatamgr/udmf:libudmf", 180 "//interface/sdk_c/distributeddatamgr/udmf:udmf_ndk_header", 181 "//interface/sdk_c/distributeddatamgr/pasteboard:libpasteboard", 182 "//interface/sdk_c/distributeddatamgr/pasteboard:pasteboard_ndk_header", 183 "//interface/sdk_c/distributeddatamgr/preferences:preferences_ndk_header", 184 "//interface/sdk_c/distributeddatamgr/preferences:libohpreferences", 185 "//interface/sdk_c/drivers/external_device_manager/usb:libusb_ndk", 186 "//interface/sdk_c/drivers/external_device_manager/usb:usb_header", 187 "//interface/sdk_c/drivers/external_device_manager/hid:libhid", 188 "//interface/sdk_c/drivers/external_device_manager/hid:hid_header", 189 "//interface/sdk_c/drivers/external_device_manager/base:libddk_base", 190 "//interface/sdk_c/drivers/external_device_manager/base:ddk_header", 191 "//interface/sdk_c/graphic/graphic_2d/vulkan:libvulkan_ndk", 192 "//interface/sdk_c/graphic/graphic_2d/vulkan:vulkan_header", 193 "//interface/sdk_c/graphic/graphic_2d/vulkan:vulkan_header_vk_video", 194 "//interface/sdk_c/resourceschedule/ffrt:libffrt_ndk", 195 "//interface/sdk_c/resourceschedule/ffrt:ffrt_header", 196 "//interface/sdk_c/network/netmanager:libnet_connection", 197 "//interface/sdk_c/network/netmanager:netconn_header", 198 "//interface/sdk_c/sensors/sensor:libsensor_ndk", 199 "//interface/sdk_c/sensors/sensor:sensor_ndk_header", 200 "//interface/sdk_c/resourceschedule/qos_manager:libqos_ndk", 201 "//interface/sdk_c/resourceschedule/qos_manager:qos_header", 202 "//interface/sdk_c/filemanagement/fileio:libohfileio", 203 "//interface/sdk_c/filemanagement/fileio:oh_fileio_header", 204 "//interface/sdk_c/filemanagement/environment:libohenvironment", 205 "//interface/sdk_c/filemanagement/environment:oh_environment_header", 206 "//interface/sdk_c/filemanagement/file_uri:libohfileuri", 207 "//interface/sdk_c/filemanagement/file_uri:oh_file_uri_header", 208 "//interface/sdk_c/filemanagement/fileshare:libohfileshare", 209 "//interface/sdk_c/filemanagement/fileshare:oh_file_share_header", 210 "//interface/sdk_c/multimodalinput/kits/c:libohinput_ndk", 211 "//interface/sdk_c/multimodalinput/kits/c:ohinput_header", 212 "//interface/sdk_c/BasicServicesKit:libohprint_ndk", 213 "//interface/sdk_c/BasicServicesKit:ohprint_header", 214 "//interface/sdk_c/multimedia/image_framework:libohimage", 215 "//interface/sdk_c/multimedia/image_framework:ohimage_header", 216 "//interface/sdk_c/multimedia/image_framework:libimage_receiver", 217 "//interface/sdk_c/multimedia/image_framework:image_receiver_header", 218 "//interface/sdk_c/graphic/graphic_2d/native_display_soloist:libnative_display_soloist_ndk", 219 "//interface/sdk_c/graphic/graphic_2d/native_display_soloist:native_display_soloist_header", 220 "//interface/sdk_c/third_party/musl/ndk_script:copy_compatible_config", 221 "//interface/sdk_c/CryptoArchitectureKit:libohcrypto", 222 "//interface/sdk_c/CryptoArchitectureKit:crypto_capi_header", 223 "//interface/sdk_c/BasicServicesKit:libohscan_ndk", 224 "//interface/sdk_c/BasicServicesKit:ohscan_header", 225 "//interface/sdk_c/DataProtectionKit:libohdlp_permission", 226 "//interface/sdk_c/DataProtectionKit:dlppermission_capi_header", 227 "//interface/sdk_c/inputmethod:libohinputmethod", 228 "//interface/sdk_c/inputmethod:libohinputmethod_header", 229 "//interface/sdk_c/BasicServicesKit:libtime_service_ndk", 230 "//interface/sdk_c/BasicServicesKit:time_service_ndk_header", 231 "//interface/sdk_c/BasicServicesKit:libcommonevent_ndk", 232 "//interface/sdk_c/BasicServicesKit:ohcommonevent_header", 233 "//interface/sdk_c/BasicServicesKit:ohbattery_info_header", 234 "//interface/sdk_c/BasicServicesKit:libohbattery_info_ndk", 235 "//interface/sdk_c/telephony/cellular_data:libtelephony_data", 236 "//interface/sdk_c/telephony/cellular_data:telephony_data_header", 237 "//interface/sdk_c/telephony/core_service:libtelephony_radio", 238 "//interface/sdk_c/telephony/core_service:telephony_radio_header", 239 "//interface/sdk_c/ConnectivityKit/wifi:libwifi_ndk", 240 "//interface/sdk_c/ConnectivityKit/wifi:wifi_ndk_header", 241 "//interface/sdk_c/backgroundtasks/transient:libtransient_task_ndk", 242 "//interface/sdk_c/backgroundtasks/transient:transient_task_header", 243] 244 245_ndk_base_libs = [ 246 "//interface/sdk_c/third_party/musl/ndk_script/adapter:libc_ndk", 247 "//interface/sdk_c/third_party/musl/ndk_script:musl_ndk_libs_arm32", 248 "//interface/sdk_c/third_party/musl/ndk_script:musl_ndk_libs_aarch64", 249 "//interface/sdk_c/third_party/musl/ndk_script:musl_ndk_libs_x86_64", 250 "//interface/sdk_c/third_party/musl/ndk_script:ndk_toolchain", 251] 252_ndk_sysroot_uapi = 253 [ "//interface/sdk_c/third_party/musl/ndk_script:musl_sysroot" ] 254 255_ndk_cmake = [ 256 "//prebuilts/cmake/darwin-x86:darwin_cmake_copy", 257 "//prebuilts/cmake/linux-x86:linux_cmake_copy", 258 "//prebuilts/cmake/windows-x86:windows_cmake_copy", 259 "//prebuilts/cmake/ohos:ohos_cmake_copy", 260 "//build/ohos/ndk:ndk_cmake_files", 261] 262 263if (host_os == "mac") { 264 _ndk_cmake += [ "//build/ohos/ndk:copy_darwin_ohos_cmake" ] 265} else { 266 _ndk_cmake += [ 267 "//build/ohos/ndk:copy_linux_ohos_cmake", 268 "//build/ohos/ndk:copy_windows_ohos_cmake", 269 "//build/ohos/ndk:copy_ohos_ohos_cmake", 270 ] 271} 272 273_ndk_ninja = [] 274if (host_os == "mac") { 275 _ndk_ninja += [ "//prebuilts/build-tools/darwin-x86/bin:darwin_ninja_copy" ] 276} else { 277 _ndk_ninja += [ 278 "//prebuilts/build-tools/linux-x86/bin:linux_ninja_copy", 279 "//prebuilts/build-tools/windows-x86/bin:windows_ninja_copy", 280 "//prebuilts/build-tools/ohos/bin:ohos_ninja_copy", 281 ] 282} 283 284_ndk_targets_list = _ndk_library_targets + _ndk_base_libs + _ndk_sysroot_uapi + 285 _ndk_cmake + _ndk_ninja 286 287_parse_script = "//build/ohos/ndk/parse_ndk_targets.py" 288_parse_args = [ 289 "--source-root-dir", 290 rebase_path("//", root_build_dir), 291 "--ndk-lib-target-list", 292] 293_parse_args += _ndk_targets_list 294 295all_ndk_targets_list = exec_script(_parse_script, _parse_args, "list lines") 296 297if (ndk_platform == "win") { 298 all_ndk_targets_list += 299 [ "//interface/sdk_c/third_party/musl/ndk_script:windows_x86_64" ] 300} else if (ndk_platform == "mac") { 301 if (host_cpu == "arm64") { 302 all_ndk_targets_list += 303 [ "//interface/sdk_c/third_party/musl/ndk_script:darwin_arm64" ] 304 } else { 305 all_ndk_targets_list += 306 [ "//interface/sdk_c/third_party/musl/ndk_script:darwin_x86_64" ] 307 } 308} else if (ndk_platform == "linux") { 309 all_ndk_targets_list += 310 [ "//interface/sdk_c/third_party/musl/ndk_script:linux_x86_64" ] 311} else if (ndk_platform == "ohos") { 312 all_ndk_targets_list += 313 [ "//interface/sdk_c/third_party/musl/ndk_script:ohos_arm64" ] 314} else if (ndk_platform == "default") { 315 if (host_os == "mac") { 316 if (host_cpu == "arm64") { 317 all_ndk_targets_list += 318 [ "//interface/sdk_c/third_party/musl/ndk_script:darwin_arm64" ] 319 } else { 320 all_ndk_targets_list += 321 [ "//interface/sdk_c/third_party/musl/ndk_script:darwin_x86_64" ] 322 } 323 } else { 324 all_ndk_targets_list += [ 325 "//interface/sdk_c/third_party/musl/ndk_script:windows_x86_64", 326 "//interface/sdk_c/third_party/musl/ndk_script:linux_x86_64", 327 "//interface/sdk_c/third_party/musl/ndk_script:ohos_arm64", 328 ] 329 } 330} 331