summaryrefslogtreecommitdiffstats
path: root/toolkit/library/rust/gkrust-features.mozbuild
blob: 2c1c4bbd6afd8e40f99414a4555c926155b56bee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

gkrust_features = []

if CONFIG['MOZ_DEBUG']:
    gkrust_features += [
        'gecko_debug',
        'gecko_refcount_logging',
    ]

if CONFIG['MOZ_TSAN']:
    gkrust_features += ['thread_sanitizer']

if CONFIG['MOZ_WEBRENDER_DEBUGGER']:
    gkrust_features += ['webrender_debugger']

if CONFIG['MOZ_PULSEAUDIO']:
    gkrust_features += ['cubeb_pulse_rust']

if CONFIG['MOZ_AUDIOUNIT_RUST']:
    gkrust_features += ['cubeb_coreaudio_rust']

if CONFIG['MOZ_RUST_SIMD']:
    gkrust_features += ['simd-accel']

# This feature is not yet supported on all platforms, and this check needs to
# match MOZ_CUBEB_REMOTING in CubebUtils.cpp.
if (CONFIG['OS_ARCH'] == 'Linux' and CONFIG['OS_TARGET'] != 'Android') or CONFIG['OS_ARCH'] == 'Darwin' or CONFIG['OS_ARCH'] == 'WINNT':
    gkrust_features += ['cubeb-remoting']

if CONFIG['MOZ_MEMORY']:
    gkrust_features += ['moz_memory']

if CONFIG['MOZ_PLACES']:
    gkrust_features += ['moz_places']

if CONFIG['JS_ENABLE_SMOOSH']:
    gkrust_features += ['smoosh']

if CONFIG['MOZ_GECKO_PROFILER']:
    gkrust_features += ['gecko_profiler']

if CONFIG['MOZ_GECKO_PROFILER_PARSE_ELF']:
    gkrust_features += ['gecko_profiler_parse_elf']

if CONFIG['MOZ_BITS_DOWNLOAD']:
    gkrust_features += ['bitsdownload']

if CONFIG['LIBFUZZER']:
    gkrust_features += ['libfuzzer']

if CONFIG['MOZ_WEBRTC']:
    gkrust_features += ['webrtc']

# We need to tell Glean it is being built with Gecko.
gkrust_features += ['glean_with_gecko']

if not CONFIG['MOZILLA_OFFICIAL']:
    gkrust_features += ['glean_disable_upload']

if CONFIG['OS_TARGET'] != 'Android':
    gkrust_features += ['glean_million_queue']

if CONFIG['MOZ_ENABLE_DBUS']:
    gkrust_features += ['with_dbus']

if CONFIG["MOZ_CRASHREPORTER"] and CONFIG['MOZ_OXIDIZED_BREAKPAD']:
    gkrust_features += ['oxidized_breakpad']

if CONFIG["MOZ_WEBMIDI_MIDIR_IMPL"]:
    gkrust_features += ['webmidi_midir_impl']

if CONFIG["MOZ_UNIFFI_FIXTURES"]:
    gkrust_features += ['uniffi_fixtures']

# This must remain last.
gkrust_features = ["gkrust-shared/%s" % f for f in gkrust_features]