summaryrefslogtreecommitdiffstats
path: root/toolkit/library/rust/gkrust-features.mozbuild
blob: bca833213c6519e3b72b011e062c8d60d05a0ce5 (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
82
83
84
85
86
87
88
89
90
# -*- 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"] and CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
    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"
    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"]:
    gkrust_features += ["crashreporter"]
    if 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"]

if CONFIG["MOZ_ICU4X"]:
    gkrust_features += ["icu4x"]

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