# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chrome_build.gni")
if (is_android) {
import("//build/config/android/config.gni")
}
declare_args() {
# This enables build with TFLite library.
# TODO(b/269198471): Make sure the internal archive files for opt guide get
# updated when win arm64 gets added as a supported platform for TFLite.
build_with_tflite_lib = is_android || is_win || is_linux || is_mac ||
is_chromeos || is_fuchsia || is_ios
}
if (is_ios) {
declare_args() {
# iOS is bring-your-own-model. If ios_on_device_llm_path is set to a
# non-empty value, bundles the given model file. Paths can be absolute or
# relative to the source root directory.
ios_on_device_llm_path = ""
}
}
declare_args() {
# You can set the variable 'build_with_internal_optimization_guide' to true
# even in a developer build in args.gn. Setting this variable explicitly to true will
# cause your build to fail if the internal files are missing.
#
# If changing the value of this, you MUST also update the following files depending on the
# platform:
# Android: Internal expectations files that verify the native libraries are compiled into the Android binary.
# ChromeOS: //lib/chrome_util.py in the Chromite repo (ex: https://crrev.com/c/3437291)
# Linux: Internal archive files. //chrome/installer/linux/common/installer.include handles the
# relevant files not being present.
# Mac: //chrome/installer/mac/signing/parts.py
# Windows: //chrome/installer/mini_installer/chrome.release and internal archive files
if (is_fuchsia || is_android) {
# Fuchsia and Android should work but is not included in the set we release for, so we do
# not needlessly increase the binary size.
build_with_internal_optimization_guide = false
} else if (is_ios) {
build_with_internal_optimization_guide = ios_on_device_llm_path != ""
} else if (build_with_tflite_lib) {
# When TFLite works for windows arm64, this lib should just work seamlessly.
# Use is_chrome_branded as a proxy for "does src-internal exist".
build_with_internal_optimization_guide = is_chrome_branded
} else {
build_with_internal_optimization_guide = false
}
}