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


Quelle  toolchain.gni   Sprache: unbekannt

 
# Copyright 2015 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.

# Toolchain-related configuration that may be needed outside the context of the
# toolchain() rules themselves.

import("//chromium/build/config/chrome_build.gni")
import("//chromium/build/config/chromecast_build.gni")
import("//build_overrides/build.gni")

declare_args() {
  # If this is set to true, we use the revision in the llvm repo to determine
  # the CLANG_REVISION to use, instead of the version hard-coded into
  # //tools/clang/scripts/update.py. This should only be used in
  # conjunction with setting the llvm_force_head_revision DEPS variable when
  # `gclient runhooks` is run as well.
  llvm_force_head_revision = false

  # Compile with Xcode version of clang instead of hermetic version shipped
  # with the build. Used to be used iOS for official builds, but is now off by
  # default for all configurations.
  use_xcode_clang = false

  # Used for binary size analysis.
  generate_linker_map = is_android && is_official_build
}

if (generate_linker_map) {
  assert(is_official_build || is_chromecast,
         "Linker map files should only be generated when is_official_build = " +
             "true or is_chromecast = true")
  assert(current_os == "android" || current_os == "linux" ||
             target_os == "android" || target_os == "linux" ||
             target_os == "chromeos",
         "Linker map files should only be generated for Android, Linux, " +
             "or ChromeOS.")
}

declare_args() {
  clang_version = "14.0.0"
}

# Check target_os here instead of is_ios as this file is loaded for secondary
# toolchain (host toolchain in particular) but the argument is the same for
# all toolchains.
assert(!use_xcode_clang || target_os == "ios",
       "Using Xcode's clang is only supported in iOS builds")

# Extension for shared library files (including leading dot).
if (is_apple) {
  shlib_extension = ".dylib"
} else if (is_android && is_component_build) {
  # By appending .cr, we prevent name collisions with libraries already
  # loaded by the Android zygote.
  shlib_extension = ".cr.so"
} else if (is_posix || is_fuchsia) {
  shlib_extension = ".so"
} else if (is_win) {
  shlib_extension = ".dll"
} else {
  assert(false, "Platform not supported")
}

# Prefix for shared library files.
if (is_posix || is_fuchsia) {
  shlib_prefix = "lib"
} else {
  shlib_prefix = ""
}

# Directory for shared library files.
if (is_fuchsia) {
  shlib_subdir = "/lib"
} else {
  shlib_subdir = ""
}

# While other "tool"s in a toolchain are specific to the target of that
# toolchain, the "stamp" and "copy" tools are really generic to the host;
# but each toolchain must define them separately.  GN doesn't allow a
# template instantiation inside a toolchain definition, so some boilerplate
# has to be repeated in each toolchain to define these two tools.  These
# four variables reduce the duplication in that boilerplate.
stamp_description = "STAMP {{output}}"
copy_description = "COPY {{source}} {{output}}"
if (host_os == "win") {
  _tool_wrapper_path =
      rebase_path("//chromium/build/toolchain/win/tool_wrapper.py", root_build_dir)

  stamp_command = "cmd /c type nul > \"{{output}}\""
  copy_command =
      "$python_path $_tool_wrapper_path recursive-mirror {{source}} {{output}}"
} else {
  stamp_command = "touch {{output}}"
  copy_command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} && cp -af {{source}} {{output}})"
}

# This variable is true if the current toolchain is one of the target
# toolchains, i.e. a toolchain which is being used to build the main Chrome
# binary. This generally means "not the host toolchain", but in the case where
# we're targeting the host it's true then as well. We do require current_os to
# match target_os so that for example we avoid considering Android as a target
# toolchain when targeting CrOS.
is_a_target_toolchain =
    (current_toolchain != host_toolchain ||
     default_toolchain == host_toolchain) && current_os == target_os

[ Dauer der Verarbeitung: 0.13 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