Starboard: configuration.gni Reference Guide

Variables
asan_symbolizer_path

A symbolizer path for ASAN can be added to allow translation of callstacks.

The default value is "<clang_base_path>/bin/llvm-symbolizer".
cobalt_licenses_platform

Sub-directory to copy license file to.

The default value is "default".
cobalt_platform_dependencies

List of platform-specific targets that get compiled into cobalt.

The default value is [].
cobalt_v8_emit_builtins_as_inline_asm

Some compiler can not compile with raw assembly(.S files) and v8 converts asm to inline assembly for these platforms.

The default value is false.
default_renderer_options_dependency

Override this value to adjust the default rasterizer setting for your platform.

The default value is "//cobalt/renderer:default_options".
enable_in_app_dial

Enables or disables the DIAL server that runs inside Cobalt. Note: Only enable if there's no system-wide DIAL support.

The default value is false.
executable_configs

Target-specific configurations for executable targets.

The default value is [].
final_executable_type

The target type for executable targets. Allows changing the target type on platforms where the native code may require an additional packaging step (ex. Android).

The default value is "executable".
gl_type

The source of EGL and GLES headers and libraries. Valid values (case and everything sensitive!):
  • system_gles2 - Use the system implementation of EGL + GLES2. The headers and libraries must be on the system include and link paths.
  • glimp - Cobalt's own EGL + GLES2 implementation. This requires a valid Glimp implementation for the platform.
  • angle - A DirectX-to-OpenGL adaptation layer. This requires a valid ANGLE implementation for the platform.

    The default value is "system_gles2".
gtest_target_type

The target type for test targets. Allows changing the target type on platforms where the native code may require an additional packaging step (ex. Android).

The default value is "executable".
has_platform_targets

Whether the platform has platform-specific targets to depend on.

The default value is false.
install_target_path

The path to the gni file containing the install_target template which defines how the build should produce the install/ directory.

The default value is "//starboard/build/install/no_install.gni".
is_clang_16

Enable when using clang 16.

The default value is false.
loadable_module_configs

Target-specific configurations for loadable_module targets.

The default value is [].
nasm_exists

Enables the nasm compiler to be used to compile .asm files.

The default value is false.
path_to_nasm

Where yasm can be found on the host device.

The default value is "nasm".
platform_tests_path

Set to the starboard_platform_tests target if the platform implements them.

The default value is "".
sabi_path

Where the Starboard ABI file for this platform can be found.

The default value is "starboard/sabi/default/sabi.json".
sb_api_version

The Starboard API version of the current build configuration. The default value is meant to be overridden by a Starboard ABI file.

The default value is 16.
sb_enable_benchmark

Used to enable benchmarks.

The default value is false.
sb_enable_cpp17_audit

Enables an NPLB audit of C++17 support.

The default value is true.
sb_enable_cpp20_audit

Enables an NPLB audit of C++20 support.

The default value is true.
sb_enable_lib

Enables embedding Cobalt as a shared library within another app. This requires a 'lib' starboard implementation for the corresponding platform.

The default value is false.
sb_enable_opus_sse

Enables optimizations on SSE compatible platforms.

The default value is true.
sb_evergreen_compatible_package

Whether to generate the whole package containing both Loader app and Cobalt core on the Evergreen compatible platform.

The default value is false.
sb_evergreen_compatible_use_libunwind

Whether to use the libunwind library on Evergreen compatible platform.

The default value is false.
sb_filter_based_player

Used to indicate that the player is filter based.

The default value is true.
sb_has_unused_symbol_issue

Set this to true if the modular toolchain linker doesn't strip all unused symbols and nplb fails to link.

The default value is false.
sb_is_evergreen

Whether this is an Evergreen build.

The default value is false.
sb_is_evergreen_compatible

Whether this is an Evergreen compatible platform. A compatible platform can run the elf_loader and launch the Evergreen build.

The default value is false.
sb_libevent_method

The event polling mechanism available on this platform to support libevent. Platforms may redefine to 'poll' if necessary. Other mechanisms, e.g. devpoll, kqueue, select, are not yet supported.

The default value is "epoll".
sb_static_contents_output_data_dir

Directory path to static contents' data.

The default value is "/project_out_dir/content/data".
sb_use_no_rtti

Whether or not to disable run-time type information (adding no_rtti flag).

The default value is false.
separate_install_targets_for_bundling

Set to true to separate install target directories.

The default value is false.
shared_library_configs

Target-specific configurations for shared_library targets.

The default value is [].
source_set_configs

Target-specific configurations for source_set targets.

The default value is [].
starboard_level_final_executable_type

The default value is "executable".
starboard_level_gtest_target_type

The default value is "executable".
static_library_configs

Target-specific configurations for static_library targets.

The default value is [].
v8_enable_pointer_compression_override

Set to true to enable pointer compression for v8.

The default value is true.
v8_enable_webassembly

Enable WASM and install WebAssembly global.

The default value is false.