Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  BUILD.gn   Sprache: unbekannt

 
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//chromium/build/config/android/config.gni")
import("//chromium/build/config/clang/clang.gni")
import("//chromium/build/config/compiler/compiler.gni")
import("//chromium/build/config/ozone.gni")
import("//chromium/build/config/sysroot.gni")  # Imports android/config.gni.
import("//chromium/build/toolchain/gcc_toolchain.gni")

declare_args() {
  # Whether unstripped binaries, i.e. compiled with debug symbols, should be
  # considered runtime_deps rather than stripped ones.
  android_unstripped_runtime_outputs = true
}

# The Android clang toolchains share most of the same parameters, so we have this
# wrapper around gcc_toolchain to avoid duplication of logic.
#
# Parameters:
#  - binary_prefix
#      Prefix of compiler executables.
template("android_clang_toolchain") {
  gcc_toolchain(target_name) {
    assert(defined(invoker.toolchain_args),
           "toolchain_args must be defined for android_clang_toolchain()")

    # Android toolchains need to declare .dwp files as outputs, so need to know
    # the value of "use_debug_fission" when defining them.
    # The derived value of "use_debug_fission" varies based on current_os, but
    # toolchain definitions are evaluated under the default toolchain.
    # Rather than computing the value under current_os="android", just disable
    # it if target_os != "android".
    _use_debug_fission = use_debug_fission && target_os == "android"

    toolchain_args = {
      forward_variables_from(invoker.toolchain_args, "*")
      current_os = "android"
      use_debug_fission = _use_debug_fission
    }

    # Output linker map files for binary size analysis.
    enable_linker_map = true

    _android_tool_prefix =
        "$android_toolchain_root/bin/${invoker.binary_prefix}-"

    # The tools should be run relative to the build dir.
    _tool_prefix = rebase_path("$_android_tool_prefix", root_build_dir)

    _prefix = rebase_path("$clang_base_path/bin", root_build_dir)
    cc = "$_prefix/clang"
    cxx = "$_prefix/clang++"
    ar = "$_prefix/llvm-ar"
    ld = cxx
    readelf = _tool_prefix + "readelf"
    nm = "$_prefix/llvm-nm"
    strip = "$_prefix/llvm-strip"
    if (_use_debug_fission) {
      dwp = _tool_prefix + "dwp"
    }
    use_unstripped_as_runtime_outputs = android_unstripped_runtime_outputs

    # Don't use .cr.so for loadable_modules since they are always loaded via
    # absolute path.
    loadable_module_extension = ".so"
  }
}

android_clang_toolchain("android_clang_x86") {
  binary_prefix = "i686-linux-android"
  toolchain_args = {
    target_cpu = "x86"

    # We lack the libclang_rt.profile library for x86 and x86_64, so we cannot
    # link any binaries that are generated with coverage instrumentation.
    # Therefore we need to turn off 'use_clang_coverage' for this toolchain.
    # TODO(crbug.com/865376)
    use_clang_coverage = false

    # This turns off all of the LaCrOS-specific flags. A LaCrOS related build
    # may use |ash_clang_x64| or |lacros_clang_x64| toolchain, which are
    # chromeos toolchains, to build Ash-Chrome or Lacros-Chrome in a
    # subdirectory, and because chromeos toolchain uses android toolchain, which
    # eventually resulted in that android toolchains being used inside a LaCrOS
    # build.
    also_build_ash_chrome = false
    also_build_lacros_chrome = false
    chromeos_is_browser_only = false
    ozone_platform = ""
    ozone_platform_wayland = false
  }
}

android_clang_toolchain("android_clang_arm") {
  binary_prefix = "arm-linux-androideabi"
  toolchain_args = {
    target_cpu = "arm"
  }
}

android_clang_toolchain("android_clang_mipsel") {
  binary_prefix = "mipsel-linux-android"
  toolchain_args = {
    target_cpu = "mipsel"
  }
}

android_clang_toolchain("android_clang_x64") {
  binary_prefix = "x86_64-linux-android"
  toolchain_args = {
    target_cpu = "x64"

    # We lack the libclang_rt.profile library for x86 and x86_64, so we cannot
    # link any binaries that are generated with coverage instrumentation.
    # Therefore we need to turn off 'use_clang_coverage' for this toolchain.
    # TODO(crbug.com/865376)
    use_clang_coverage = false

    # This turns off all of the LaCrOS-specific flags. A LaCrOS related build
    # may use |ash_clang_x64| or |lacros_clang_x64| toolchain, which are
    # chromeos toolchains, to build Ash-Chrome or Lacros-Chrome in a
    # subdirectory, and because chromeos toolchain uses android toolchain, which
    # eventually resulted in that android toolchains being used inside a LaCrOS
    # build.
    also_build_ash_chrome = false
    also_build_lacros_chrome = false
    chromeos_is_browser_only = false
    ozone_platform = ""
    ozone_platform_wayland = false
  }
}

android_clang_toolchain("android_clang_arm64") {
  binary_prefix = "aarch64-linux-android"
  toolchain_args = {
    target_cpu = "arm64"
  }
}

android_clang_toolchain("android_clang_arm64_hwasan") {
  binary_prefix = "aarch64-linux-android"
  toolchain_args = {
    target_cpu = "arm64"
    is_hwasan = true
    android64_ndk_api_level = 29
  }
}

android_clang_toolchain("android_clang_mips64el") {
  binary_prefix = "mips64el-linux-android"
  toolchain_args = {
    target_cpu = "mips64el"
  }
}

[ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge