BUILD.gn 5.4 KB
Newer Older
M
mamingshuai 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
# Copyright (c) 2020 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build/lite/config/subsystem/aafwk/path.gni")
import("//build/lite/ndk/ndk.gni")

if (ohos_build_ndk_target_host == "linux-x86_64" &&
    ohos_build_compiler == "gcc") {
  copy("compiler") {
    sources = [
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/arm-linux-musleabi",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/arm-linux-ohoseabi",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/host_bin",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/lib",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/libexec",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/runtime_musl",
      "//prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/target",
    ]
    outputs = [ "$ndk_linux_toolchains_out_dir/{{source_file_part}}" ]
  }
}

if (ohos_build_compiler == "clang") {
  copy("compiler") {
    sources = [
      "//prebuilts/clang/ohos/$ohos_build_ndk_target_host/llvm/NOTICE",
      "//prebuilts/clang/ohos/$ohos_build_ndk_target_host/llvm/bin",
      "//prebuilts/clang/ohos/$ohos_build_ndk_target_host/llvm/include",
      "//prebuilts/clang/ohos/$ohos_build_ndk_target_host/llvm/lib",
      "//prebuilts/clang/ohos/$ohos_build_ndk_target_host/llvm/libexec",
      "//prebuilts/clang/ohos/$ohos_build_ndk_target_host/llvm/share",
    ]
    if (ohos_build_ndk_target_host == "linux-x86_64") {
      outputs = [ "$ndk_linux_toolchains_out_dir/{{source_file_part}}" ]
    } else if (ohos_build_ndk_target_host == "windows-x86_64") {
      outputs = [ "$ndk_windows_toolchains_out_dir/{{source_file_part}}" ]
    }
  }
}

ndk_toolchains("build_script") {
  src_type = "file"
  src_dir = [
    "//build/lite/ndk/build/BUILD.gn",
    "//build/lite/ndk/build/build.py",
    "//build/lite/ndk/README.md",
    "//build/lite/ndk/build/.gn",
  ]
  dest_dir = [
    "$root_out_dir/ndk",
    "$root_out_dir/ndk",
    "$root_out_dir/ndk",
    "$root_out_dir/ndk/build",
  ]
}

ndk_toolchains("source") {
  src_dir = [
    "//build/lite/ndk/sample",
    "//build/lite/ndk/build/config",
    "//build/lite/ndk/build/toolchain",
  ]
  dest_dir = [
    "$root_out_dir/ndk/sample",
    "$root_out_dir/ndk/build/config",
    "$root_out_dir/ndk/build/toolchain",
  ]
  if (ohos_build_compiler == "clang") {
    src_dir += [
A
arvinzzz 已提交
81 82
      "$root_out_dir/sysroot/usr/lib",
      "$root_out_dir/sysroot/usr/include",
M
mamingshuai 已提交
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
    ]
    dest_dir += [
      "$root_out_dir/ndk/sysroot/usr/lib",
      "$root_out_dir/ndk/sysroot/usr/include",
    ]
  }
  if (host_os == "win") {
    src_dir += [ "//prebuilts/build-tools/win-x86/bin" ]
  } else {
    src_dir += [ "//prebuilts/build-tools/linux-x86/bin" ]
  }
  dest_dir += [ "$root_out_dir/ndk/prebuilts/build-tools/bin" ]
}

group("ndk_build") {
  deps = [
    ":build_script",
    ":source",
    "//base/startup/bootstrap_lite/services:bootstrap_lite_ndk",
102
    "//base/update/sys_installer_lite/frameworks:update_api",
M
mamingshuai 已提交
103
    "//build/lite/config/subsystem/hiviewdfx:hilog_ndk",
W
weiyujin 已提交
104
    "//commonlibrary/utils_lite:native_api",
M
mamingshuai 已提交
105 106 107 108 109
  ]
  if (ohos_kernel_type != "liteos_m") {
    deps += [
      "${aafwk_lite_path}/frameworks/ability_lite:ability_notes",
      "${appexecfwk_lite_path}/frameworks/bundle_lite:bundle_notes",
110
      "//base/security/permission_lite/interfaces/kits:permission_notes",
M
mamingshuai 已提交
111
      "//base/sensors/sensor_lite/interfaces/kits/native:sensors_api",
M
Mupceet 已提交
112
      "//base/startup/init_lite/interfaces/kits/token:token_notes",
M
mamingshuai 已提交
113
      "//build/lite/config/component/cJSON:cjson_ndk",
114
      "//drivers/hdf_core/adapter/khdf/liteos/ndk:hdf_api",
115 116 117 118
      "//foundation/arkui/ui_lite:ui_lite_ndk",
      "//foundation/graphic/graphic_utils_lite:graphic_utils_lite_ndk",
      "//foundation/graphic/graphic_utils_lite:lite_graphic_hals_ndk",
      "//foundation/graphic/surface_lite:surface_lite_ndk",
H
hangliebe 已提交
119
      "//foundation/multimedia/media_lite/services:media_ndk",
C
chen 已提交
120
      "//foundation/systemabilitymgr/samgr_lite:samgr_lite_ndk",
121
      "//foundation/window/window_manager_lite:window_manager_lite_ndk",
M
mamingshuai 已提交
122 123 124 125 126 127 128
      "//third_party/mbedtls:mbedtls_ndk",
      "//third_party/wpa_supplicant/wpa_supplicant-2.9:wpa_supplicant",
    ]
  } else {
    deps += [
      "$ohos_vendor_adapter_dir/hals/communication/wifi_lite/wifiservice:wifiservice_ndk",
      "//base/hiviewdfx/hilog_lite/frameworks/mini:hilog_lite_ndk",
129
      "//base/iothardware/peripheral:iothardware_ndk",
M
mamingshuai 已提交
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
    ]
  }
}

action("ndk") {
  if (ohos_build_ndk) {
    deps = [ "doc" ]
    script = "//build/lite//ndk/archive_ndk.py"
    depfile = "${target_gen_dir}/${target_name}.d"
    ndk_name = "$ohos_build_ndk_target_host-$ohos_build_compiler-$ohos_build_ndk_version"
    args = [
      "--src_dir",
      rebase_path("$root_build_dir/ndk"),
      "--name",
      ndk_name,
      "--dest_dir",
      rebase_path("$root_build_dir/packages/ndk"),
    ]
    outputs = [ "$root_build_dir/packages/ndk/$ndk_name.zip" ]
  }
}