File: features.gni

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (64 lines) | stat: -rw-r--r-- 2,632 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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")
import("//build/config/compiler/compiler.gni")
if (is_android) {
  import("//build/config/android/config.gni")
}
if (is_fuchsia) {
  import("//build/config/fuchsia/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. ios_on_device_llm_files should include 3 paths:
    # - /path/to/weights.bin
    # - /path/to/manifest.json
    # - /path/to/config.pb
    ios_on_device_llm_files = []
  }
}

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 = false
  } 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
  }
}

declare_args() {
  # Exclude the model on builders targeting web_engine on fuchsia.
  # TODO: crbug.com/393434571 - Clarify the boundary / strategy here.
  build_with_model_execution = !(is_fuchsia && is_web_engine)
}