gecko-dev/build/docs/mozinfo.rst

178 lines
3.8 KiB
ReStructuredText

.. _mozinfo:
=======
mozinfo
=======
``mozinfo`` is a solution for representing a subset of build
configuration and run-time data.
``mozinfo`` data is typically accessed through a ``mozinfo.json`` file
which is written to the :term:`object directory` during build
configuration. The code for writing this file lives in
:py:mod:`mozbuild.mozinfo`.
``mozinfo.json`` is an object/dictionary of simple string values.
The attributes in ``mozinfo.json`` are used for many purposes. One use
is to filter tests for applicability to the current build. For more on
this, see :ref:`test_manifests`.
.. _mozinfo_attributes:
mozinfo.json Attributes
=================================
``mozinfo`` currently records the following attributes.
appname
The application being built.
Value comes from ``MOZ_APP_NAME`` from ``config.status``.
Optional.
asan
Whether address sanitization is enabled.
Values are ``true`` and ``false``.
Always defined.
bin_suffix
The file suffix for binaries produced with this build.
Values may be an empty string, as not all platforms have a binary
suffix.
Always defined.
bits
The number of bits in the CPU this build targets.
Values are typically ``32`` or ``64``.
Universal Mac builds do not have this key defined.
Unkown processor architectures (see ``processor`` below) may not have
this key defined.
Optional.
buildapp
The path to the XUL application being built.
For desktop Firefox, this is ``browser``. For Fennec, it's
``mobile/android``. For B2G, it's ``b2g``.
crashreporter
Whether the crash reporter is enabled for this build.
Values are ``true`` and ``false``.
Always defined.
datareporting
Whether data reporting (MOZ_DATA_REPORTING) is enabled for this build.
Values are ``true`` and ``false``.
Always defined.
debug
Whether this is a debug build.
Values are ``true`` and ``false``.
Always defined.
healthreport
Whether the Health Report feature is enabled.
Values are ``true`` and ``false``.
Always defined.
mozconfig
The path of the :ref:`mozconfig file <mozconfig>` used to produce this build.
Optional.
nightly_build
Whether this is a nightly build.
Values are ``true`` and ``false``.
Always defined.
os
The operating system the build is produced for. Values for tier-1
supported platforms are ``linux``, ``win``, ``mac``, ``b2g``, and
``android``. For other platforms, the value is the lowercase version
of the ``OS_TARGET`` variable from ``config.status``.
Always defined.
processor
Information about the processor architecture this build targets.
Values come from ``TARGET_CPU``, however some massaging may be
performed.
If the build is a universal build on Mac (it targets both 32-bit and
64-bit), the value is ``universal-x86-x86_64``.
If the value starts with ``arm``, the value is ``arm``.
If the value starts with a string of the form ``i[3-9]86]``, the
value is ``x86``.
Always defined.
release_build
Whether this is a release build.
Values are ``true`` and ``false``.
Always defined.
sm_promise
Whether spidermonkey promises have been enabled or not. This is set
by adding --enable-sm-promise to the mozconfig file.
Values are ``true`` and ``false``.
Always defined.
tests_enabled
Whether tests are enabled for this build.
Values are ``true`` and ``false``.
Always defined.
toolkit
The widget toolkit in case. The value comes from the
``MOZ_WIDGET_TOOLKIT`` ``config.status`` variable.
Always defined.
topsrcdir
The path to the source directory the build came from.
Always defined.
wave
Whether Wave audio support is enabled.
Values are ``true`` and ``false``.
Always defined.
webm
Whether WebM support is enabled.
Values are ``true`` and ``false``.
Always defined.