1# Copyright (C) 2021 Huawei Device Co., Ltd. 2# Copyright (C) 2019 The Android Open Source Project 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15import("//build/config/clang/clang.gni") 16import("//build/ohos/ndk/ndk.gni") 17import("//build/version.gni") 18import("//third_party/musl/musl_config.gni") 19import("//third_party/musl/musl_src.gni") 20import("//third_party/musl/musl_template.gni") 21 22musl_target_out_dir = "${root_out_dir}/obj/third_party/musl" 23ndk_musl_include = "ndk_musl_include" 24interface_musl_dir = "//interface/sdk_c/third_party/musl" 25target_version_dir = "ndk_musl_include/info" 26target_version_file = "application_target_sdk_version.h" 27 28if (host_os == "mac") { 29 if (host_cpu == "arm64") { 30 toolchains_file_name = "darwin-arm64" 31 deps_name = "darwin_arm64" 32 } else { 33 toolchains_file_name = "darwin-x86_64" 34 deps_name = "darwin_x86_64" 35 } 36 37 darwin_system_toolchains_dir = "${toolchains_dir}/${toolchains_file_name}" 38 ohos_ndk_toolchains("${deps_name}") { 39 dest_dir = "$ndk_darwin_toolchains_out_dir" 40 sources = [ 41 "${darwin_system_toolchains_dir}/llvm/NOTICE", 42 "${darwin_system_toolchains_dir}/llvm/bin", 43 "${darwin_system_toolchains_dir}/llvm/include", 44 "${darwin_system_toolchains_dir}/llvm/lib", 45 "${darwin_system_toolchains_dir}/llvm/libexec", 46 "${darwin_system_toolchains_dir}/llvm/python3", 47 "${darwin_system_toolchains_dir}/llvm/script", 48 "${darwin_system_toolchains_dir}/llvm/share", 49 ] 50 license_file = "${darwin_system_toolchains_dir}/llvm/NOTICE" 51 } 52 53 action("darwin_toolchain") { 54 outputs = [ "${ndk_darwin_toolchains_out_dir}" ] 55 script = "toolchain.sh" 56 args = 57 [ "-i" ] + [ rebase_path("${darwin_system_toolchains_dir}/libcxx-ndk") ] 58 args += [ "-o" ] + [ rebase_path("${ndk_darwin_toolchains_out_dir}") ] 59 args += 60 [ "-l" ] + [ rebase_path("${darwin_system_toolchains_dir}/llvm/bin") ] 61 if (host_cpu == "arm64") { 62 deps = [ ":darwin_arm64" ] 63 } else { 64 deps = [ ":darwin_x86_64" ] 65 } 66 } 67} else if (host_os == "linux" && host_cpu == "arm64") { 68 linux_aarch64_toolchains_dir = "${toolchains_dir}/linux-aarch64" 69 ohos_ndk_toolchains("linux_arm64") { 70 dest_dir = "$ndk_linux_toolchains_out_dir" 71 sources = [ 72 "${linux_aarch64_toolchains_dir}/llvm/NOTICE", 73 "${linux_aarch64_toolchains_dir}/llvm/bin", 74 "${linux_aarch64_toolchains_dir}/llvm/include", 75 "${linux_aarch64_toolchains_dir}/llvm/lib", 76 "${linux_aarch64_toolchains_dir}/llvm/libexec", 77 "${linux_aarch64_toolchains_dir}/llvm/python3", 78 "${linux_aarch64_toolchains_dir}/llvm/script", 79 "${linux_aarch64_toolchains_dir}/llvm/share", 80 ] 81 license_file = "${linux_aarch64_toolchains_dir}/llvm/NOTICE" 82 } 83 84 action("linux_toolchain") { 85 outputs = [ "${ndk_linux_toolchains_out_dir}" ] 86 script = "toolchain.sh" 87 args = 88 [ "-i" ] + [ rebase_path("${linux_aarch64_toolchains_dir}/libcxx-ndk") ] 89 args += [ "-o" ] + [ rebase_path("${ndk_linux_toolchains_out_dir}") ] 90 args += 91 [ "-l" ] + [ rebase_path("${linux_aarch64_toolchains_dir}/llvm/bin") ] 92 deps = [ ":linux_arm64" ] 93 } 94} else { 95 windows_x86_64_toolchain_dir = "${toolchains_dir}/windows-x86_64" 96 ohos_arm64_toolchain_dir = "${toolchains_dir}/ohos-arm64" 97 linux_x86_64_toolchains_dir = "${toolchains_dir}/linux-x86_64" 98 prebuilts_python = "//prebuilts/python_llvm" 99 ohos_ndk_toolchains("linux_x86_64") { 100 dest_dir = "$ndk_linux_toolchains_out_dir" 101 sources = [ 102 "${linux_x86_64_toolchains_dir}/llvm/NOTICE", 103 "${linux_x86_64_toolchains_dir}/llvm/bin", 104 "${linux_x86_64_toolchains_dir}/llvm/include", 105 "${linux_x86_64_toolchains_dir}/llvm/lib", 106 "${linux_x86_64_toolchains_dir}/llvm/libexec", 107 "${linux_x86_64_toolchains_dir}/llvm/python3", 108 "${linux_x86_64_toolchains_dir}/llvm/script", 109 "${linux_x86_64_toolchains_dir}/llvm/share", 110 ] 111 license_file = "${linux_x86_64_toolchains_dir}/llvm/NOTICE" 112 } 113 114 ohos_ndk_toolchains("windows_x86_64") { 115 dest_dir = "$ndk_windows_toolchains_out_dir" 116 sources = [ 117 "${windows_x86_64_toolchain_dir}/llvm/NOTICE", 118 "${windows_x86_64_toolchain_dir}/llvm/bin", 119 "${windows_x86_64_toolchain_dir}/llvm/include", 120 "${windows_x86_64_toolchain_dir}/llvm/lib", 121 "${windows_x86_64_toolchain_dir}/llvm/libexec", 122 "${windows_x86_64_toolchain_dir}/llvm/python3", 123 "${windows_x86_64_toolchain_dir}/llvm/script", 124 "${windows_x86_64_toolchain_dir}/llvm/share", 125 ] 126 args = [ "--follow-all-symlinks" ] 127 license_file = "${windows_x86_64_toolchain_dir}/llvm/NOTICE" 128 } 129 130 ohos_ndk_toolchains("ohos_arm64") { 131 dest_dir = "$ndk_ohos_toolchains_out_dir" 132 sources = [ 133 "${ohos_arm64_toolchain_dir}/llvm/bin", 134 "${ohos_arm64_toolchain_dir}/llvm/include", 135 "${ohos_arm64_toolchain_dir}/llvm/lib", 136 "${ohos_arm64_toolchain_dir}/llvm/libexec", 137 "${ohos_arm64_toolchain_dir}/llvm/python3", 138 "${ohos_arm64_toolchain_dir}/llvm/share", 139 ] 140 } 141 142 action("linux_toolchain") { 143 outputs = [ "${ndk_linux_toolchains_out_dir}" ] 144 script = "toolchain.sh" 145 args = 146 [ "-i" ] + [ rebase_path("${linux_x86_64_toolchains_dir}/libcxx-ndk") ] 147 args += [ "-o" ] + [ rebase_path("${ndk_linux_toolchains_out_dir}") ] 148 args += 149 [ "-l" ] + [ rebase_path("${linux_x86_64_toolchains_dir}/llvm/bin") ] 150 args += [ "-p" ] + [ rebase_path("${prebuilts_python}/linux-x86") ] 151 deps = [ ":linux_x86_64" ] 152 } 153 154 action("windows_toolchain") { 155 outputs = [ "${ndk_windows_toolchains_out_dir}" ] 156 script = "toolchain.sh" 157 args = 158 [ "-i" ] + [ rebase_path("${windows_x86_64_toolchain_dir}/libcxx-ndk") ] 159 args += [ "-o" ] + [ rebase_path("${ndk_windows_toolchains_out_dir}") ] 160 161 if (host_cpu == "arm64") { 162 args += 163 [ "-l" ] + [ rebase_path("${linux_aarch64_toolchains_dir}/llvm/bin") ] 164 } else { 165 args += 166 [ "-l" ] + [ rebase_path("${linux_x86_64_toolchains_dir}/llvm/bin") ] 167 args += [ "-p" ] + [ rebase_path("${prebuilts_python}/windows-x86") ] 168 } 169 deps = [ ":windows_x86_64" ] 170 } 171 172 action("ohos_toolchain") { 173 outputs = [ "${ndk_ohos_toolchains_out_dir}" ] 174 script = "toolchain.sh" 175 args = [ "-i" ] + [ rebase_path("${ohos_arm64_toolchain_dir}/libcxx-ndk") ] 176 args += [ "-o" ] + [ rebase_path("${ndk_ohos_toolchains_out_dir}") ] 177 if (host_cpu == "arm64") { 178 args += 179 [ "-l" ] + [ rebase_path("${linux_aarch64_toolchains_dir}/llvm/bin") ] 180 } else { 181 args += 182 [ "-l" ] + [ rebase_path("${linux_x86_64_toolchains_dir}/llvm/bin") ] 183 } 184 deps = [ ":ohos_arm64" ] 185 } 186} 187 188group("ndk_toolchain") { 189 if (host_os == "mac") { 190 deps = [ ":darwin_toolchain" ] 191 } else if (host_os == "linux" && host_cpu == "arm64") { 192 deps = [ ":linux_toolchain" ] 193 } else { 194 deps = [ 195 ":linux_toolchain", 196 ":ohos_toolchain", 197 ":windows_toolchain", 198 ] 199 } 200} 201 202group("musl_sysroot") { 203 deps = [ 204 ":copy_musl_sysroot", 205 ":musl_arm_bits_arm32", 206 ":musl_arm_uapi_arm32", 207 ":musl_bits_aarch64", 208 ":musl_bits_x86_64", 209 ] 210} 211 212action("copy_ndk_uapi") { 213 outputs = [ "${musl_target_out_dir}/${ndk_musl_include}/linux" ] 214 script = "${musl_dir}/scripts/copy_uapi.sh" 215 args = [ "-i" ] + [ rebase_path("${musl_uapi_dir}") ] 216 args += 217 [ "-o" ] + [ rebase_path("${musl_target_out_dir}/${ndk_musl_include}") ] 218 args += [ "-t" ] + [ "${musl_arch}" ] 219} 220 221action("copy_ndk_musl_headers") { 222 outputs = [ "${musl_target_out_dir}/${ndk_musl_include}" ] 223 script = "copy_ndk_musl_headers.sh" 224 args = [ "-i" ] + [ rebase_path("${interface_musl_dir}/${ndk_musl_include}") ] 225 args += 226 [ "-o" ] + [ rebase_path("${musl_target_out_dir}/${ndk_musl_include}") ] 227 deps = [ ":copy_ndk_uapi" ] 228} 229 230action("updated_version") { 231 outputs = [ "${musl_target_out_dir}/${target_version_dir}" ] 232 script = "updated_version.py" 233 args = [ "-p" ] + [ rebase_path( 234 "${musl_target_out_dir}/${target_version_dir}/${target_version_file}") ] 235 args += [ "-v" ] + [ api_version ] 236 deps = [ ":copy_ndk_musl_headers" ] 237} 238 239action("copy_musl_sysroot") { 240 outputs = [ "${ndk_headers_out_dir}" ] 241 script = "copy_musl_sysroot.sh" 242 args = 243 [ "-i" ] + [ rebase_path("${musl_target_out_dir}/${ndk_musl_include}") ] 244 args += [ "-o" ] + [ rebase_path("${ndk_headers_out_dir}") ] 245 args += [ "-t" ] + [ "${musl_arch}" ] 246 deps = [ ":updated_version" ] 247} 248 249musl_libs_arm32 = [ 250 "//third_party/musl:create_alltypes_h(//build/toolchain/ohos:ohos_clang_arm)", 251 "//third_party/musl:create_syscall_h(//build/toolchain/ohos:ohos_clang_arm)", 252 "//third_party/musl:musl_copy_inc_bits(//build/toolchain/ohos:ohos_clang_arm)", 253] 254 255musl_libs_aarch64 = [ 256 "//third_party/musl:create_alltypes_h(//build/toolchain/ohos:ohos_clang_arm64)", 257 "//third_party/musl:create_syscall_h(//build/toolchain/ohos:ohos_clang_arm64)", 258 "//third_party/musl:musl_copy_inc_bits(//build/toolchain/ohos:ohos_clang_arm64)", 259] 260 261musl_libs_x86_64 = [ 262 "//third_party/musl:create_alltypes_h(//build/toolchain/ohos:ohos_clang_x86_64)", 263 "//third_party/musl:create_syscall_h(//build/toolchain/ohos:ohos_clang_x86_64)", 264 "//third_party/musl:musl_copy_inc_bits(//build/toolchain/ohos:ohos_clang_x86_64)", 265] 266 267musl_lib_arm32 = [ 268 "//third_party/musl:soft_musl_crt_install_action(//build/toolchain/ohos:ohos_clang_arm)", 269 "//third_party/musl:soft_libc_musl_static(//build/toolchain/ohos:ohos_clang_arm)", 270 "//third_party/musl:soft_libm(//build/toolchain/ohos:ohos_clang_arm)", 271 "//third_party/musl:soft_libdl(//build/toolchain/ohos:ohos_clang_arm)", 272 "//third_party/musl:soft_libpthread(//build/toolchain/ohos:ohos_clang_arm)", 273 "//third_party/musl:soft_libcrypt(//build/toolchain/ohos:ohos_clang_arm)", 274 "//third_party/musl:soft_libutil(//build/toolchain/ohos:ohos_clang_arm)", 275 "//third_party/musl:soft_libxnet(//build/toolchain/ohos:ohos_clang_arm)", 276 "//third_party/musl:soft_libresolv(//build/toolchain/ohos:ohos_clang_arm)", 277 "//third_party/musl:soft_librt(//build/toolchain/ohos:ohos_clang_arm)", 278] 279 280musl_lib_arm64 = [ 281 "//third_party/musl:soft_musl_crt_install_action(//build/toolchain/ohos:ohos_clang_arm64)", 282 "//third_party/musl:soft_libc_musl_static(//build/toolchain/ohos:ohos_clang_arm64)", 283 "//third_party/musl:soft_libm(//build/toolchain/ohos:ohos_clang_arm64)", 284 "//third_party/musl:soft_libdl(//build/toolchain/ohos:ohos_clang_arm64)", 285 "//third_party/musl:soft_libpthread(//build/toolchain/ohos:ohos_clang_arm64)", 286 "//third_party/musl:soft_libcrypt(//build/toolchain/ohos:ohos_clang_arm64)", 287 "//third_party/musl:soft_libutil(//build/toolchain/ohos:ohos_clang_arm64)", 288 "//third_party/musl:soft_libxnet(//build/toolchain/ohos:ohos_clang_arm64)", 289 "//third_party/musl:soft_libresolv(//build/toolchain/ohos:ohos_clang_arm64)", 290 "//third_party/musl:soft_librt(//build/toolchain/ohos:ohos_clang_arm64)", 291] 292 293musl_lib_x86_64 = [ 294 "//third_party/musl:soft_musl_crt_install_action(//build/toolchain/ohos:ohos_clang_x86_64)", 295 "//third_party/musl:soft_libc_musl_static(//build/toolchain/ohos:ohos_clang_x86_64)", 296 "//third_party/musl:soft_libm(//build/toolchain/ohos:ohos_clang_x86_64)", 297 "//third_party/musl:soft_libdl(//build/toolchain/ohos:ohos_clang_x86_64)", 298 "//third_party/musl:soft_libpthread(//build/toolchain/ohos:ohos_clang_x86_64)", 299 "//third_party/musl:soft_libcrypt(//build/toolchain/ohos:ohos_clang_x86_64)", 300 "//third_party/musl:soft_libutil(//build/toolchain/ohos:ohos_clang_x86_64)", 301 "//third_party/musl:soft_libxnet(//build/toolchain/ohos:ohos_clang_x86_64)", 302 "//third_party/musl:soft_libresolv(//build/toolchain/ohos:ohos_clang_x86_64)", 303 "//third_party/musl:soft_librt(//build/toolchain/ohos:ohos_clang_x86_64)", 304] 305 306## arm-linux-ohos asm directory 307ohos_ndk_copy("musl_arm_uapi_arm32") { 308 dest_dir = "$ndk_os_irrelevant_out_dir/sysroot/usr/include/arm-linux-ohos" 309 310 sources = 311 [ "//kernel/linux/patches/linux-5.10/prebuilts/usr/include/asm-arm/asm" ] 312 args = [ "--ignore-stale" ] 313} 314 315## arm-linux-ohos bits directory 316ohos_copy("musl_arm_bits_arm32") { 317 deps = musl_libs_arm32 318 sources = [] 319 sources_temp = [ 320 "alltypes.h", 321 "syscall.h", 322 ] 323 sources_temp += musl_inc_bits_files 324 sources_orig = get_path_info(sources_temp, "file") 325 326 # print("${sources_orig}") 327 328 foreach(s, sources_orig) { 329 sources += [ get_label_info(deps[0], "target_out_dir") + 330 "/usr/include/arm-linux-ohos/bits/${s}" ] 331 } 332 outputs = [ "$ndk_os_irrelevant_out_dir/sysroot/usr/include/arm-linux-ohos/bits/{{source_file_part}}" ] 333} 334 335## aarch64-linux-ohos bits directory 336ohos_copy("musl_bits_aarch64") { 337 deps = musl_libs_aarch64 338 sources = [] 339 sources_temp = [ 340 "alltypes.h", 341 "syscall.h", 342 ] 343 sources_temp += musl_inc_bits_files 344 sources_orig = get_path_info(sources_temp, "file") 345 346 # print("${sources_orig}") 347 348 foreach(s, sources_orig) { 349 sources += [ get_label_info(deps[0], "target_out_dir") + 350 "/usr/include/aarch64-linux-ohos/bits/${s}" ] 351 } 352 outputs = [ "$ndk_os_irrelevant_out_dir/sysroot/usr/include/aarch64-linux-ohos/bits/{{source_file_part}}" ] 353} 354 355## x86_64-linux-ohos bits directory 356ohos_copy("musl_bits_x86_64") { 357 deps = musl_libs_x86_64 358 sources = [] 359 sources_temp = [ 360 "alltypes.h", 361 "syscall.h", 362 ] 363 sources_temp += musl_inc_bits_files 364 sources_orig = get_path_info(sources_temp, "file") 365 366 # print("${sources_orig}") 367 368 foreach(s, sources_orig) { 369 sources += [ get_label_info(deps[0], "target_out_dir") + 370 "/usr/include/x86_64-linux-ohos/bits/${s}" ] 371 } 372 outputs = [ "$ndk_os_irrelevant_out_dir/sysroot/usr/include/x86_64-linux-ohos/bits/{{source_file_part}}" ] 373} 374 375ohos_copy("musl_ndk_libs_arm32") { 376 deps = musl_lib_arm32 377 crt_dir = "${root_build_dir}/obj/third_party/musl/usr/lib/arm-linux-ohos" 378 sources = [ 379 "${crt_dir}/Scrt1.o", 380 "${crt_dir}/crt1.o", 381 "${crt_dir}/crti.o", 382 "${crt_dir}/crtn.o", 383 "${crt_dir}/rcrt1.o", 384 ] 385 sources += [ get_label_info(deps[0], "target_out_dir") + 386 "/usr/lib/arm-linux-ohos/libm.a" ] 387 sources += [ get_label_info(deps[0], "target_out_dir") + 388 "/usr/lib/arm-linux-ohos/libdl.a" ] 389 sources += [ get_label_info(deps[0], "target_out_dir") + 390 "/usr/lib/arm-linux-ohos/libc.a" ] 391 sources += [ get_label_info(deps[0], "target_out_dir") + 392 "/usr/lib/arm-linux-ohos/libcrypt.a" ] 393 sources += [ get_label_info(deps[0], "target_out_dir") + 394 "/usr/lib/arm-linux-ohos/libpthread.a" ] 395 sources += [ get_label_info(deps[0], "target_out_dir") + 396 "/usr/lib/arm-linux-ohos/libresolv.a" ] 397 sources += [ get_label_info(deps[0], "target_out_dir") + 398 "/usr/lib/arm-linux-ohos/librt.a" ] 399 sources += [ get_label_info(deps[0], "target_out_dir") + 400 "/usr/lib/arm-linux-ohos/libutil.a" ] 401 sources += [ get_label_info(deps[0], "target_out_dir") + 402 "/usr/lib/arm-linux-ohos/libxnet.a" ] 403 404 outputs = [ "$ndk_os_irrelevant_out_dir/sysroot/usr/lib/arm-linux-ohos/{{source_file_part}}" ] 405} 406 407ohos_copy("musl_ndk_libs_aarch64") { 408 deps = musl_lib_arm64 409 sources = [ get_label_info(deps[0], "target_out_dir") + 410 "/usr/lib/aarch64-linux-ohos/Scrt1.o" ] 411 sources += [ get_label_info(deps[0], "target_out_dir") + 412 "/usr/lib/aarch64-linux-ohos/crt1.o" ] 413 sources += [ get_label_info(deps[0], "target_out_dir") + 414 "/usr/lib/aarch64-linux-ohos/crti.o" ] 415 sources += [ get_label_info(deps[0], "target_out_dir") + 416 "/usr/lib/aarch64-linux-ohos/crtn.o" ] 417 sources += [ get_label_info(deps[0], "target_out_dir") + 418 "/usr/lib/aarch64-linux-ohos/rcrt1.o" ] 419 sources += [ get_label_info(deps[0], "target_out_dir") + 420 "/usr/lib/aarch64-linux-ohos/libc.a" ] 421 sources += [ get_label_info(deps[0], "target_out_dir") + 422 "/usr/lib/aarch64-linux-ohos/libdl.a" ] 423 sources += [ get_label_info(deps[0], "target_out_dir") + 424 "/usr/lib/aarch64-linux-ohos/libm.a" ] 425 sources += [ get_label_info(deps[0], "target_out_dir") + 426 "/usr/lib/aarch64-linux-ohos/libcrypt.a" ] 427 sources += [ get_label_info(deps[0], "target_out_dir") + 428 "/usr/lib/aarch64-linux-ohos/libpthread.a" ] 429 sources += [ get_label_info(deps[0], "target_out_dir") + 430 "/usr/lib/aarch64-linux-ohos/libresolv.a" ] 431 sources += [ get_label_info(deps[0], "target_out_dir") + 432 "/usr/lib/aarch64-linux-ohos/librt.a" ] 433 sources += [ get_label_info(deps[0], "target_out_dir") + 434 "/usr/lib/aarch64-linux-ohos/libutil.a" ] 435 sources += [ get_label_info(deps[0], "target_out_dir") + 436 "/usr/lib/aarch64-linux-ohos/libxnet.a" ] 437 438 outputs = [ "$ndk_os_irrelevant_out_dir/sysroot/usr/lib/aarch64-linux-ohos/{{source_file_part}}" ] 439} 440 441ohos_copy("musl_ndk_libs_x86_64") { 442 deps = musl_lib_x86_64 443 crt_dir = "${root_build_dir}/obj/third_party/musl/usr/lib/x86_64-linux-ohos" 444 sources = [ 445 "${crt_dir}/Scrt1.o", 446 "${crt_dir}/crt1.o", 447 "${crt_dir}/crti.o", 448 "${crt_dir}/crtn.o", 449 "${crt_dir}/rcrt1.o", 450 ] 451 sources += [ get_label_info(deps[0], "target_out_dir") + 452 "/usr/lib/x86_64-linux-ohos/libc.a" ] 453 sources += [ get_label_info(deps[0], "target_out_dir") + 454 "/usr/lib/x86_64-linux-ohos/libdl.a" ] 455 sources += [ get_label_info(deps[0], "target_out_dir") + 456 "/usr/lib/x86_64-linux-ohos/libm.a" ] 457 sources += [ get_label_info(deps[0], "target_out_dir") + 458 "/usr/lib/x86_64-linux-ohos/libcrypt.a" ] 459 sources += [ get_label_info(deps[0], "target_out_dir") + 460 "/usr/lib/x86_64-linux-ohos/libpthread.a" ] 461 sources += [ get_label_info(deps[0], "target_out_dir") + 462 "/usr/lib/x86_64-linux-ohos/libresolv.a" ] 463 sources += [ get_label_info(deps[0], "target_out_dir") + 464 "/usr/lib/x86_64-linux-ohos/librt.a" ] 465 sources += [ get_label_info(deps[0], "target_out_dir") + 466 "/usr/lib/x86_64-linux-ohos/libutil.a" ] 467 sources += [ get_label_info(deps[0], "target_out_dir") + 468 "/usr/lib/x86_64-linux-ohos/libxnet.a" ] 469 470 outputs = [ "$ndk_os_irrelevant_out_dir/sysroot/usr/lib/x86_64-linux-ohos/{{source_file_part}}" ] 471} 472 473ohos_ndk_copy("copy_compatible_config") { 474 dest_dir = "$ndk_os_irrelevant_out_dir" 475 sources = 476 [ "//interface/sdk_c/third_party/musl/ndk_script/compatible_config.json" ] 477 args = [ "--ignore-stale" ] 478} 479