(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. Unknown 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`. 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. devedition : Whether this is a devedition 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 ` 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`, 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_or_beta : Whether this is a release or beta build. Values are `true` and `false`. Always defined. stylo : Whether the Stylo styling system is being used. 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. topobjdir : The path to the obj directory the build came from. Always defined. webrender : Whether or not WebRender is enabled as the Gecko compositor. Values are `true` and `false`. Always defined.