| # Copyright (c) 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. |
| |
| if (is_mac || is_ios) { |
| import("//build/config/ios/ios_sdk.gni") # For use_ios_simulator |
| } |
| |
| declare_args() { |
| # Enable the optional type profiler in Clang, which will tag heap allocations |
| # with the allocation type. |
| use_clang_type_profiler = false |
| |
| # Enable Link Time Optimzations. This significantly slows down linking but |
| # results in a smaller binary. |
| enable_lto = true |
| |
| # Generate code with instrumentation for code coverage generation using LLVM. |
| enable_coverage = false |
| |
| # Set this flag to enable bitcode. Only valid for iOS ARM builds. |
| enable_bitcode = false |
| |
| # Set this flag to cause bitcode to be marker only. |
| bitcode_marker = false |
| |
| # Set this flag to strip .so files. |
| stripped_symbols = !is_debug |
| } |
| |
| declare_args() { |
| # The version of Xcode used to archive a release application with embedded |
| # bitcode must be greater than or equal to the version of the toolchain |
| # that created the bitcode in Flutter.framework. This means that when we build |
| # the framework with embedded bitcode, we must use the Xcode toolchain and |
| # its version must be less than or equal to what we expect our developers to be using. |
| # Unfortunately, using the Xcode toolchain is not compatible with GOMA. |
| # |
| # The failure mode for this arises when a developer attempts to archive an application |
| # for publication to the store with embedded bitcode. |
| # |
| # Since we do not support publishing debug or profile builds, we use |
| # bitcode_marker which is intrinsically faster to build and does not introduce |
| # compatibility concerns between toolchains, meaning we can use |
| # a GOMA enabled Clang. |
| # |
| # TODO(gw280): Once our own copy of clang 12 is capable of building for arm64 simulator, |
| # we can safely remove the requirement that we use xcode for arm64 simulator builds. |
| if (is_mac || is_ios) { |
| use_xcode = (enable_bitcode && !bitcode_marker) || (use_ios_simulator && target_cpu == "arm64") |
| } else { |
| use_xcode = false |
| } |
| } |