summaryrefslogtreecommitdiffstats
path: root/toolkit/library/rust/gkrust-features.mozbuild
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/library/rust/gkrust-features.mozbuild')
-rw-r--r--toolkit/library/rust/gkrust-features.mozbuild84
1 files changed, 84 insertions, 0 deletions
diff --git a/toolkit/library/rust/gkrust-features.mozbuild b/toolkit/library/rust/gkrust-features.mozbuild
new file mode 100644
index 0000000000..4e12307b38
--- /dev/null
+++ b/toolkit/library/rust/gkrust-features.mozbuild
@@ -0,0 +1,84 @@
+# -*- 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' and CONFIG['CPU_ARCH'] != 'aarch64'):
+ 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['MOZ_NEW_XULSTORE']:
+ gkrust_features += ['new_xulstore']
+
+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]