mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
82c6f5d7a7
Our current build system support for Rust compiles any Rust crate into a so-called staticlib, which is a static library (.a file) that includes the Rust runtime. That staticlib is then linked into libxul. For supporting multiple crates, this approach breaks down, as linking multiple copies of the Rust runtime is going to fail. For supporting multiple crates, the approach taken here is to compile each crate into a so-called rlib, which is essentially a staticlib without the Rust runtime linked in. The build system takes note of every crate destined for linking with libxul (treating them like static libraries generated from C/C++ files), and generates a super-crate, whimsically named "rul", that is compiled as a staticlib (so as to include the Rust runtime) and then linked into libxul. Thus only one copy of the Rust runtime is included, and the Rust compiler can take care of any inter-crate dependencies. This patch currently only supports Rust code in shared libraries, not in binaries. |
||
---|---|---|
.. | ||
bitstring | ||
blessings | ||
compare-locales | ||
configobj | ||
eme | ||
futures | ||
jsmin | ||
lldbutils | ||
mach | ||
mock-1.0.0 | ||
mozboot | ||
mozbuild | ||
mozversioncontrol/mozversioncontrol | ||
psutil | ||
pyasn1 | ||
pyasn1-modules | ||
PyECC | ||
pystache | ||
pyyaml | ||
redo | ||
requests | ||
rsa | ||
slugid | ||
virtualenv | ||
which | ||
mach_commands.py | ||
moz.build | ||
README |
This directory contains common Python code. The basic rule is that if Python code is cross-module (that's "module" in the Mozilla meaning - as in "module ownership") and is MPL-compatible, it should go here. What should not go here: * Python that is not MPL-compatible (see other-licenses/) * Python that has good reason to remain close to its "owning" (Mozilla) module (e.g. it is only being consumed from there). Historical information can be found at https://bugzilla.mozilla.org/show_bug.cgi?id=775243 ## pyyaml | pystache Used in taskcluster related mach commands to update download from github and remove .git and tests. Then run tests in taskcluster/tests/