gecko-dev/moz.build
Nicholas Nethercote 977d5b8a57 Bug 1648348 - Create "Writing Rust Code" docs. r=froydnj,zbraniecki,lina.
This patch includes content from the following places.

- Lina's "Getting Rusty: How to ship an XPCOM component in Firefox" slide deck.
- Zibi's "Rust <--> C/C++ FFI for newbies" gist.

It also links to Emilio's "FFI patterns #1 - Complex Rust data structures
exposed seamlessly to C++" blog post. I was going to include that content, but
it's very long, so I have omitted it for now.

Differential Revision: https://phabricator.services.mozilla.com/D81963
2020-07-07 07:38:27 +00:00

210 lines
5.6 KiB
Python

# -*- Mode: python; 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/.
with Files('AUTHORS'):
BUG_COMPONENT = ('mozilla.org', 'Licensing')
with Files('LICENSE'):
BUG_COMPONENT = ('mozilla.org', 'Licensing')
with Files('LEGAL'):
BUG_COMPONENT = ('mozilla.org', 'Licensing')
with Files('aclocal.m4'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('Cargo.*'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('client.*'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('CLOBBER'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('*configure*'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files("docs/**"):
BUG_COMPONENT = ("Firefox Build System", "Generated Documentation")
SCHEDULES.exclusive = ['docs']
with Files('mach'):
BUG_COMPONENT = ('Firefox Build System', 'Mach Core')
with Files('*moz*'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('GNUmakefile'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('*gradle*'):
BUG_COMPONENT = ('GeckoView', 'General')
SCHEDULES.exclusive = ['android']
with Files('*.json'):
BUG_COMPONENT = ('Firefox Build System', 'General')
with Files('**/l10n.toml'):
BUG_COMPONENT = ('Core', 'Localization')
FINAL = True
with Files('README.txt'):
BUG_COMPONENT = ('Core', 'General')
with Files("nsprpub/**"):
BUG_COMPONENT = ("NSPR", "NSPR")
with Files('**/Makefile.in'):
BUG_COMPONENT = ('Firefox Build System', 'General')
FINAL = True
with Files("**/*.js"):
SCHEDULES.inclusive += ['docs']
with Files("**/*.jsm"):
SCHEDULES.inclusive += ['docs']
with Files("**/*.rst"):
SCHEDULES.inclusive += ['docs']
with Files("**/*.md"):
SCHEDULES.inclusive += ['docs']
with Files("**/reftest.list"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['reftest']
with Files("**/reftest-qr.list"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['reftest']
with Files("**/crashtest*.list"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['crashtest']
with Files("**/a11y.ini"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['mochitest-a11y']
with Files("**/mochitest.ini"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['mochitest-plain']
with Files("**/browser.ini"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['mochitest-browser-chrome']
with Files("**/test*/**browser_*"):
SCHEDULES.exclusive = ['mochitest-browser-chrome']
with Files("**/chrome.ini"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['mochitest-chrome']
with Files("**/xpcshell.ini"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['xpcshell']
with Files("**/reftest*/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['reftest']
with Files("**/crashtest*/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['crashtest']
with Files("**/mochitest*/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['mochitest']
with Files("**/xpcshell/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
SCHEDULES.exclusive = ['xpcshell']
with Files("**/tests/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
with Files("**/test/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
with Files("**/unit/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
with Files("**/browser/tools/mozscreenshots/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
with Files("**/devtools/shared/test-helpers/**"):
SCHEDULES.inclusive += ['test-verify', 'test-verify-gpu']
CONFIGURE_SUBST_FILES += [
'config/autoconf.mk',
'config/emptyvars.mk',
]
if CONFIG['ENABLE_CLANG_PLUGIN']:
DIRS += ['build/clang-plugin']
DIRS += [
'config',
'python',
'testing/mozbase',
'third_party/python',
]
if not CONFIG['JS_STANDALONE']:
DIRS += ['taskcluster']
if not CONFIG['JS_STANDALONE'] or not CONFIG['MOZ_BUILD_APP']:
CONFIGURE_DEFINE_FILES += [
'mozilla-config.h',
]
EXPORTS += [
'!buildid.h',
'!mozilla-config.h',
'!source-repo.h',
]
GENERATED_FILES += [
'buildid.h',
'source-repo.h',
]
GENERATED_FILES['buildid.h'].script = 'build/variables.py:buildid_header'
GENERATED_FILES['source-repo.h'].script = 'build/variables.py:source_repo_header'
DIRS += [
'build',
]
DIRS += [
'mfbt',
]
if CONFIG['MOZ_BUILD_APP']:
# Bring in the configuration for the configured application.
include('/' + CONFIG['MOZ_BUILD_APP'] + '/app.mozbuild')
else:
include('/toolkit/toolkit.mozbuild')
OBJDIR_PP_FILES['.cargo'] += ['.cargo/config.in']
DEFINES['top_srcdir'] = TOPSRCDIR
SPHINX_TREES['contributing'] = 'docs/contributing'
SPHINX_TREES['code-quality'] = 'docs/code-quality'
SPHINX_TREES['testing-rust-code'] = 'docs/testing-rust-code'
SPHINX_TREES['writing-rust-code'] = 'docs/writing-rust-code'
SPHINX_TREES['bug-mgmt'] = 'docs/bug-mgmt'
SPHINX_TREES['setup'] = 'docs/setup'
include('build/templates.mozbuild')