1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- # Copyright 2019 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("//build/config/chromeos/ui_mode.gni")
- assert(is_chromeos)
- declare_args() {
- # The location to a file used to dump symbols ordered by Call-Chain Clustering (C3)
- # https://research.fb.com/wp-content/uploads/2017/01/cgo2017-hfsort-final1.pdf?
- # to a file, used for generating orderfiles in Chrome OS
- dump_call_chain_clustering_order = ""
- }
- config("print_orderfile") {
- if (dump_call_chain_clustering_order != "") {
- _output_orderfile =
- rebase_path(dump_call_chain_clustering_order, root_build_dir)
- ldflags = [ "-Wl,--print-symbol-order=$_output_orderfile" ]
- }
- }
- config("compiler_cpu_abi") {
- # Lacros currently uses the *-generic-crosstoolchain.gni files generated
- # by the simplechrome sdk in build/args/chromeos. These target triples
- # match the target toolchain defaults in these directories. Passing them
- # redundantly is harmless and prepares for using Chromium's toolchain.
- # Non-Lacros Chrome OS builds use per-board toolchains, which might use
- # different triples. So don't do this there.
- if (is_chromeos_device && is_chromeos_lacros) {
- if (current_cpu == "x64") {
- asmflags = [ "--target=x86_64-cros-linux-gnu" ]
- cflags = [ "--target=x86_64-cros-linux-gnu" ]
- ldflags = [ "--target=x86_64-cros-linux-gnu" ]
- } else if (current_cpu == "arm") {
- asmflags = [ "--target=armv7a-cros-linux-gnueabihf" ]
- cflags = [ "--target=armv7a-cros-linux-gnueabihf" ]
- ldflags = [ "--target=armv7a-cros-linux-gnueabihf" ]
- } else if (current_cpu == "arm64") {
- asmflags = [ "--target=aarch64-cros-linux-gnu" ]
- cflags = [ "--target=aarch64-cros-linux-gnu" ]
- ldflags = [ "--target=aarch64-cros-linux-gnu" ]
- } else {
- assert(false, "add support for $current_cpu here")
- }
- }
- }
- config("runtime_library") {
- # These flags are added by the Chrome OS toolchain compiler wrapper,
- # or are implicitly passed by Chome OS's toolchain's clang due to the cmake
- # flags that clang was built with.
- # Passing them redundantly is harmless and prepares for using Chromium's
- # toolchain for Lacros.
- if (is_chromeos_device) {
- ldflags = [
- "--rtlib=compiler-rt",
- "--unwindlib=libunwind",
- ]
- }
- }
|