This exchanges `winapi` functions/types for equivalent `windows-sys` ones. Some basic types (e.g.
`PBOOL`) don't exist in `windows-sys`, and I added `type` items for them (though those could be
removed and the types inlined; that's what `windows-sys` does itself).
The `psapi` library needed to be added for GetModuleFileNameExW; I guess previously `winapi` was
linking it?
Almost all manual definitions of types (`winapi::ENUM!` and `winapi::STRUCT!`) were no longer needed
because `windows-sys` has them. Only the version of `RTL_USER_PROCESS_PARAMETERS` with undocumented
fields was still needed.
Differential Revision: https://phabricator.services.mozilla.com/D199111
After bug 1876372, tokio is the last user of windows-sys 0.48, so we
don't really need to account for window-sys 0.48 in the workspace hack
anymore. We do however need to account for windows-sys 0.52.
Differential Revision: https://phabricator.services.mozilla.com/D199582
The ipcclientcerts-static and osclientcerts-static features are missing a
dependency upon syn (both pull syn via bindgen, so need the unified
dependency), which means all the features depend on syn, so make it
non-optional and remove the manual dependencies.
Differential Revision: https://phabricator.services.mozilla.com/D182512
It had been neglected for a long time, and the enabled features were
outdated, and plenty of now common crates were missing.
This refresh required ad-hoc, flawed scripts to reach that updated
Cargo.toml. Eventually we'll want this refresh to be automated, but
the existing tools don't quite work for our use case just yet. Rather
than waiting that such a state is reached, go ahead with this manual
update which improves a lot compared to the status quo.
Differential Revision: https://phabricator.services.mozilla.com/D180911
First, instead of using a path, use a version, which is more convenient
(via a patch in the top-level Cargo.toml).
Second, we make the build system itself enforce its presence for any
crate that is hooked to the build system as a program or library.
Finally, for each crate depending on the workspace hack, we add a
feature named after it, and make the build system enforce that the
feature is set. For now, this remains unused, but the end goal is to
have each of those features enable the dependencies each of these
crates need, so that if crate A and B need dependency D, but crate C
doesn't, building crate C doesn't build D.
Differential Revision: https://phabricator.services.mozilla.com/D180910
Not all in-tree Rust libraries were using workspace-hack.
Additionally, some needed winapi features were missing from
workspace-hack's configuration.
Now, winapi is re-compiled less frequently on a full build.
Differential Revision: https://phabricator.services.mozilla.com/D113564
We're vendoring it already so no reason not to. Only a couple dependencies left
after these to get rid of 0.6.
Differential Revision: https://phabricator.services.mozilla.com/D56044
--HG--
extra : moz-landing-system : lando
Bug 1601233 made cranelift bump its syn dependency to 1.0, breaking the
workspace hack. Some of the features were also stale from presumably
other updates.
Differential Revision: https://phabricator.services.mozilla.com/D55897
--HG--
extra : moz-landing-system : lando
The discrepancy of features used for syn between jsrust and gkrust
triggered syn and its reverse dependencies up to cranelift to be
built once for jsrust and once for gkrust, while they are time consuming
to build.
Differential Revision: https://phabricator.services.mozilla.com/D43209
--HG--
extra : moz-landing-system : lando
This is the equivalent of the rustc-workspace-hack used by the rust build to
ensure cargo and RLS see the same set of features for dependencies so that
these dependencies may be reused by invocations of cargo for these two
projects. The trivial crate added specifies the union of the set of
features activated for a particular crate for each time it appears in the
dependency tree so that cargo will understand these dependencies to be
re-usable across cargo implementations. This eliminates re-building jsrust
and some of its dependencies twice, and reduces the number of crates compiled
in the tree by about 90 in testing on linux.
Differential Revision: https://phabricator.services.mozilla.com/D9041
This is the equivalent of the rustc-workspace-hack used by the rust build to
ensure cargo and RLS see the same set of features for dependencies so that
these dependencies may be reused by invocations of cargo for these two
projects. The trivial crate added specifies the union of the set of
features activated for a particular crate for each time it appears in the
dependency tree so that cargo will understand these dependencies to be
re-usable across cargo implementations. This eliminates re-building jsrust
and some of its dependencies twice, and reduces the number of crates compiled
in the tree by about 90 in testing on linux.
Differential Revision: https://phabricator.services.mozilla.com/D9041
--HG--
extra : moz-landing-system : lando