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


Quelle  BUILD.gn   Sprache: unbekannt

 
Spracherkennung für: .gn vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

# Copyright 2014 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/compiler/compiler.gni")
import("//chromium/build/config/sysroot.gni")
import("//chromium/build/toolchain/cros_toolchain.gni")
import("//chromium/build/toolchain/gcc_toolchain.gni")

# This is mostly identical to gcc_toolchain, but handles relativizing toolchain
# paths. This is needed for CrOS since these paths often change based on the
# environment. For example, cxx is a relative path picked up on $PATH in the
# chroot. But in Simple Chrome, cxx is a system-absolute path.
template("cros_toolchain") {
  gcc_toolchain(target_name) {
    forward_variables_from(invoker, "*")

    # CrOS's target toolchain wrapper prefers to invoke gomacc itself, so pass
    # it the gomacc path via cmd-line arg. Otherwise, for both CrOS's host
    # wrapper (used in the ebuild) and Chrome's clang (used in Simple Chrome),
    # prepend gomacc like normal.
    if (use_goma && toolchain_args.needs_gomacc_path_arg) {
      extra_cppflags += " --gomacc-path $goma_dir/gomacc"
    }
    if (use_rbe && toolchain_args.needs_gomacc_path_arg) {
      extra_cppflags += " --gomacc-path $rbe_cros_cc_wrapper"
    }

    # Relativize path if compiler is specified such that not to lookup from $PATH
    # and cc/cxx does not contain additional flags.
    if (cc != get_path_info(cc, "file") && string_replace(cc, " ", "") == cc) {
      cc = rebase_path(cc, root_build_dir)
    }
    if (cxx != get_path_info(cxx, "file") &&
        string_replace(cxx, " ", "") == cxx) {
      cxx = rebase_path(cxx, root_build_dir)
    }
    if (ar != get_path_info(ar, "file") && string_replace(ar, " ", "") == ar) {
      ar = rebase_path(ar, root_build_dir)
    }
    if (ld != get_path_info(ld, "file") && string_replace(ld, " ", "") == ld) {
      ld = rebase_path(ld, root_build_dir)
    }
  }
}

# This is the normal toolchain for most targets.
cros_toolchain("target") {
  ar = cros_target_ar
  cc = cros_target_cc
  cxx = cros_target_cxx
  ld = cros_target_ld

  if (cros_target_nm != "") {
    nm = cros_target_nm
  }
  if (cros_target_readelf != "") {
    readelf = cros_target_readelf
  }
  extra_cflags = cros_target_extra_cflags
  extra_cppflags = cros_target_extra_cppflags
  extra_cxxflags = cros_target_extra_cxxflags
  extra_ldflags = cros_target_extra_ldflags

  toolchain_args = {
    cc_wrapper = ""
    needs_gomacc_path_arg = true
    clang_use_chrome_plugins = false
    target_cpu = target_cpu
    current_os = "chromeos"
    is_clang = is_clang
    use_debug_fission = use_debug_fission
    use_gold = use_gold
    use_sysroot = use_sysroot
    sysroot = target_sysroot
  }
}

# This is a special toolchain needed just for the nacl_bootstrap target in
# //native_client/src/trusted/service_runtime/linux. It is identical
# to ":target" except that it forces use_debug_fission, use_gold, and
# use_sysroot off, and allows the user to set different sets of extra flags.
cros_toolchain("nacl_bootstrap") {
  ar = cros_target_ar
  cc = cros_target_cc
  cxx = cros_target_cxx
  ld = cros_target_ld

  if (cros_target_nm != "") {
    nm = cros_target_nm
  }
  if (cros_target_readelf != "") {
    readelf = cros_target_readelf
  }
  extra_cflags = cros_nacl_bootstrap_extra_cflags
  extra_cppflags = cros_nacl_bootstrap_extra_cppflags
  extra_cxxflags = cros_nacl_bootstrap_extra_cxxflags
  extra_ldflags = cros_nacl_bootstrap_extra_ldflags

  toolchain_args = {
    cc_wrapper = ""
    needs_gomacc_path_arg = true
    clang_use_chrome_plugins = false
    target_cpu = target_cpu
    current_os = "chromeos"
    is_clang = is_clang
    use_debug_fission = false
    use_gold = false
    use_sysroot = false
  }
}

cros_toolchain("host") {
  # These are args for the template.
  ar = cros_host_ar
  cc = cros_host_cc
  cxx = cros_host_cxx
  ld = cros_host_ld

  if (cros_host_nm != "") {
    nm = cros_host_nm
  }
  if (cros_host_readelf != "") {
    readelf = cros_host_readelf
  }
  extra_cflags = cros_host_extra_cflags
  extra_cppflags = cros_host_extra_cppflags
  extra_cxxflags = cros_host_extra_cxxflags
  extra_ldflags = cros_host_extra_ldflags

  toolchain_args = {
    cc_wrapper = ""
    needs_gomacc_path_arg = false
    clang_use_chrome_plugins = false
    is_clang = cros_host_is_clang
    target_cpu = host_cpu
    current_os = "linux"
    use_sysroot = use_sysroot
    sysroot = cros_host_sysroot
  }
}

cros_toolchain("v8_snapshot") {
  # These are args for the template.
  ar = cros_v8_snapshot_ar
  cc = cros_v8_snapshot_cc
  cxx = cros_v8_snapshot_cxx
  ld = cros_v8_snapshot_ld

  if (cros_v8_snapshot_nm != "") {
    nm = cros_v8_snapshot_nm
  }
  if (cros_v8_snapshot_readelf != "") {
    readelf = cros_v8_snapshot_readelf
  }
  extra_cflags = cros_v8_snapshot_extra_cflags
  extra_cppflags = cros_v8_snapshot_extra_cppflags
  extra_cxxflags = cros_v8_snapshot_extra_cxxflags
  extra_ldflags = cros_v8_snapshot_extra_ldflags

  toolchain_args = {
    cc_wrapper = ""
    needs_gomacc_path_arg = false
    clang_use_chrome_plugins = false
    is_clang = cros_v8_snapshot_is_clang
    if (target_cpu == "x86" || target_cpu == "arm" || target_cpu == "mipsel") {
      target_cpu = "x86"
    } else {
      target_cpu = "x64"
    }
    v8_target_cpu = v8_target_cpu
    current_os = "linux"
    use_sysroot = use_sysroot
    sysroot = cros_v8_snapshot_sysroot
  }
}

[ Dauer der Verarbeitung: 0.43 Sekunden  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


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