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