summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/args
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/libwebrtc/build/args
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/build/args')
-rw-r--r--third_party/libwebrtc/build/args/OWNERS1
-rw-r--r--third_party/libwebrtc/build/args/README.txt31
-rw-r--r--third_party/libwebrtc/build/args/chromeos/README.md52
-rw-r--r--third_party/libwebrtc/build/args/headless.gn58
4 files changed, 142 insertions, 0 deletions
diff --git a/third_party/libwebrtc/build/args/OWNERS b/third_party/libwebrtc/build/args/OWNERS
new file mode 100644
index 0000000000..d218b6bdbd
--- /dev/null
+++ b/third_party/libwebrtc/build/args/OWNERS
@@ -0,0 +1 @@
+per-file headless.gn=file://headless/OWNERS
diff --git a/third_party/libwebrtc/build/args/README.txt b/third_party/libwebrtc/build/args/README.txt
new file mode 100644
index 0000000000..825bf64c69
--- /dev/null
+++ b/third_party/libwebrtc/build/args/README.txt
@@ -0,0 +1,31 @@
+This directory is here to hold .gni files that contain sets of GN build
+arguments for given configurations.
+
+(Currently this directory is empty because we removed the only thing here, but
+this has come up several times so I'm confident we'll need this again. If this
+directory is still empty by 2017, feel free to delete it. --Brett)
+
+Some projects or bots may have build configurations with specific combinations
+of flags. Rather than making a new global flag for your specific project and
+adding it all over the build to each arg it should affect, you can add a .gni
+file here with the variables.
+
+For example, for project foo you may put in build/args/foo.gni:
+
+ target_os = "android"
+ use_pulseaudio = false
+ use_ozone = true
+ system_libdir = "foo"
+
+Users wanting to build this configuration would run:
+
+ $ gn args out/mybuild
+
+And add the following line to their args for that build directory:
+
+ import("//build/args/foo.gni")
+ # You can set any other args here like normal.
+ is_component_build = false
+
+This way everybody can agree on a set of flags for a project, and their builds
+stay in sync as the flags in foo.gni are modified.
diff --git a/third_party/libwebrtc/build/args/chromeos/README.md b/third_party/libwebrtc/build/args/chromeos/README.md
new file mode 100644
index 0000000000..e02e185519
--- /dev/null
+++ b/third_party/libwebrtc/build/args/chromeos/README.md
@@ -0,0 +1,52 @@
+This directory is used to store GN arg mapping for Chrome OS boards.
+
+Files in this directory are populated by running `gclient sync` with specific
+arguments set in the .gclient file. Specifically:
+* The file must have a top-level variable set: `target_os = ["chromeos"]`
+* The `"custom_vars"` parameter of the chromium/src.git solution must include
+ the parameter: `"cros_boards": "{BOARD_NAMES}"` where `{BOARD_NAMES}` is a
+ colon-separated list of boards you'd like to checkout.
+* If you'd like to a checkout a QEMU-bootable image for a given board, include
+ it in the `cros_boards_with_qemu_images` var rather than the `cros_boards`
+ var.
+
+A typical .gclient file is a sibling of the src/ directory, and might look like
+this:
+```
+solutions = [
+ {
+ "url": "https://chromium.googlesource.com/chromium/src.git",
+ "managed": False,
+ "name": "src",
+ "custom_deps": {},
+ "custom_vars" : {
+ "checkout_src_internal": True,
+ "cros_boards": "eve:kevin",
+ # If a QEMU-bootable image is desired for any board, move it from
+ # the previous var to the following:
+ "cros_boards_with_qemu_images": "amd64-generic",
+ },
+ },
+]
+target_os = ["chromeos"]
+```
+
+To use these files in a build, simply add the following line to your GN args:
+```
+import("//build/args/chromeos/${some_board}.gni")
+```
+
+That will produce a Chrome OS build of Chrome very similar to what is shipped
+for that device. You can also supply additional args or even overwrite ones
+supplied in the .gni file after the `import()` line. For example, the following
+args will produce a debug build of Chrome for board=eve using goma:
+```
+import("//build/args/chromeos/eve.gni")
+
+is_debug = true
+use_goma = true
+goma_dir = "/path/to/goma/"
+```
+
+TODO(bpastene): Make 'cros_boards' a first class citizen in gclient and replace
+it with 'target_boards' instead.
diff --git a/third_party/libwebrtc/build/args/headless.gn b/third_party/libwebrtc/build/args/headless.gn
new file mode 100644
index 0000000000..ed6308ba22
--- /dev/null
+++ b/third_party/libwebrtc/build/args/headless.gn
@@ -0,0 +1,58 @@
+# GN args template for the Headless Chrome library
+#
+# Add import to arg.gn in out directory and run gn gen on the directory to use.
+# E.g. for out directory out/foo:
+# echo 'import("//build/args/headless.gn")' > out/foo/args.gn
+# gn gen out/foo
+#
+# Use gn args to add your own build preference args.
+
+use_ozone = true
+ozone_auto_platforms = false
+ozone_platform = "headless"
+ozone_platform_headless = true
+angle_enable_vulkan = true
+angle_enable_swiftshader = true
+
+# Embed resource.pak into binary to simplify deployment.
+headless_use_embedded_resources = true
+
+# Expose headless bindings for freetype library bundled with Chromium.
+headless_fontconfig_utils = true
+
+# Don't use Prefs component, disabling access to Local State prefs.
+headless_use_prefs = false
+
+# Don't use Policy component, disabling all policies.
+headless_use_policy = false
+
+# Remove a dependency on a system fontconfig library.
+use_bundled_fontconfig = true
+
+# In order to simplify deployment we build ICU data file
+# into binary.
+icu_use_data_file = false
+
+# Use embedded data instead external files for headless in order
+# to simplify deployment.
+v8_use_external_startup_data = false
+
+enable_nacl = false
+enable_print_preview = false
+enable_remoting = false
+use_alsa = false
+use_cups = false
+use_dbus = false
+use_gio = false
+use_kerberos = false
+use_libpci = false
+use_pulseaudio = false
+use_udev = false
+rtc_use_pipewire = false
+v8_enable_lazy_source_positions = false
+use_glib = false
+use_gtk = false
+use_pangocairo = false
+
+# TODO(1096425): Remove this once use_x11 goes away.
+use_x11 = false