about summary refs log tree commit diff
path: root/src/bootstrap/install.rs
AgeCommit message (Collapse)AuthorLines
2021-07-23refactor extended tarball generaton to use the new ensure_if_defaultPietro Albini-1/+1
2021-07-19change output of dist cargo and clippy to be consistent with other toolsPietro Albini-2/+6
2021-07-19refactor gating of dist docsPietro Albini-6/+2
2021-07-12Provide a better error when `x.py install src/doc` doesn't work.Eric Huss-4/+6
2021-07-11Add comments why install steps should never fail.Eric Huss-0/+6
2021-07-09Fix rust-analyzer install when not available.Eric Huss-4/+9
2021-04-16bootstrap: use bash on illumos to run install scriptsJoshua M. Clulow-1/+6
The default illumos shell ("sh" in the default PATH) is ksh93, rather than bash, and does not support constructs like "local" that came from bash. The bootstrap function for invoking "install.sh" scripts should use "bash" explicitly there to avoid issues.
2021-04-03Address review comments and Windows failure, and make cleanerRich Kadel-12/+8
2021-04-03Make rust-demangler installableRich Kadel-0/+20
Adds bootstrap rules to support installing rust-demangler. When compiling with `-Z instrument-coverage`, the coverage reports are generated by `llvm-cov`. `llvm-cov` includes a built-in demangler for C++, and an option to supply an alternate demangler. For Rust, we have `rust-demangler`, currently used in `rustc` coverage tests. Fuchsia's toolchain for Rust is built via `./x.py install`. Fuchsia is adding support for Rust coverage, and we need to include the `rust-demangler` in the installed `bin` directory. Configured rust-demangler as an in-tree extended tool. Added tests to support `./x.py test rust-demangler`. Install with extended tools by default only if `profiler = true`.
2021-02-17avoid converting types into themselves (clippy::useless_conversion)Matthias Krüger-1/+1
2021-02-10bootstrap: fix wrong docs installation pathPietro Albini-1/+1
2021-01-07bootstrap: fix x.py install not working with relative prefixPietro Albini-55/+44
2020-12-31bootstrap: use the correct paths during ./x.py installPietro Albini-75/+31
2020-12-20make sure installer only creates directories in DESTDIRYuxuan Shui-6/+8
Fixes #80238 Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-09-24Install std for non-host targetsMark Rousskov-1/+1
2020-07-27mv std libs to library/mark-1/+1
2020-07-19Auto merge of #74495 - shepmaster:bootstrap-dist-target-files, r=Mark-Simulacrumbors-1/+1
Teach bootstrap install and dist commands about TargetSelection With this, we can now use a target JSON file to build a cross-compiler: ``` x.py install --host ../aarch64-apple-darwin.json --target aarch64-apple-darwin ``` r? @Mark-Simulacrum
2020-07-19Teach bootstrap install and dist commands about TargetSelectionJake Goulding-1/+1
With this, we can now use a target JSON file to build a cross-compiler: ``` x.py install --host ../aarch64-apple-darwin.json --target aarch64-apple-darwin ```
2020-07-17Rollup merge of #74457 - Keruspe:install, r=Mark-SimulacrumManish Goregaokar-24/+5
rustbuild: drop tool::should_install Always install when the build succeeds Fixes #74431
2020-07-17rustbuild: drop tool::should_installMarc-Antoine Perennou-24/+5
Always install when the build succeeds Fixes #74431 Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2020-07-17Teach bootstrap about target files vs target triplesJake Goulding-14/+15
`rustc` allows passing in predefined target triples as well as JSON target specification files. This change allows bootstrap to have the first inkling about those differences. This allows building a cross-compiler for an out-of-tree architecture (even though that compiler won't work for other reasons). Even if no one ever uses this functionality, I think the newtype around the `Interned<String>` improves the readability of the code.
2020-07-03Add rust-analyzer submoduleAleksey Kladov-0/+13
The current plan is that submodule tracks the `release` branch of rust-analyzer, which is updated once a week. rust-analyzer is a workspace (with a virtual manifest), the actual binary is provide by `crates/rust-analyzer` package. Note that we intentionally don't add rust-analyzer to `Kind::Test`, for two reasons. *First*, at the moment rust-analyzer's test suite does a couple of things which might not work in the context of rust repository. For example, it shells out directly to `rustup` and `rustfmt`. So, making this work requires non-trivial efforts. *Second*, it seems unlikely that running tests in rust-lang/rust repo would provide any additional guarantees. rust-analyzer builds with stable and does not depend on the specifics of the compiler, so changes to compiler can't break ra, unless they break stability guarantee. Additionally, rust-analyzer itself is gated on bors, so we are pretty confident that test suite passes.
2020-06-16bootstrap/install.rs: support a nonexistent `prefix` in `x.py install`NODA, Kai-1/+4
PR #49778 introduced fs::canonicalize() which fails for a nonexistent path. This is a surprise for someone used to GNU Autotools' configure which can create any necessary intermediate directories in prefix. This change makes it run fs::create_dir_all() before canonicalize().
2020-05-02Gate on clippy on CIOliver Scherer-4/+2
2020-02-03bootstrap: fix clippy warningsMatthias Krüger-3/+2
2019-12-01rustbuild: fix cross-compile installXimin Luo-1/+1
although, not sure why this works - it wasn't needed before
2019-09-10Locate rustc binary similarly to codegen backend loadingMark Rousskov-2/+1
This ensures that the failure cases for finding the codegen backend and for finding the rustc binary are essentially the same, and since we almost always will load the codegen backend, this is essentially meaning that the rustc change is not a regression.
2019-06-11Fix x.py installTyler Mandry-1/+4
Make sure we look for save analysis in the right place. Fixes #61703.
2019-05-28Fixup styleAlex Crichton-8/+19
2019-05-28rustbuild: Assert extended builds don't dist too muchAlex Crichton-33/+29
This extends a test in the previous commit to assert that we don't build extra rustc compilers even when the "extended" option is set to true. This involved some internal refactoring to have more judicious usage of `compiler_for`, added in the previous commit, as well. Various `dist::*` targets were refactored to be parameterized with a `Compiler` instead of a `stage`/`host`, and then the various parameters within the `Extended` target were tweaked to ensure that we don't ever accidentally ask for a stage2 build compiler when we're distributing something.
2019-05-09remove unneeded `extern crate`s from build toolsAndy Russell-0/+2
2019-02-25bootstrap: deny(rust_2018_idioms)Taiki Endo-18/+18
2019-01-08fixupOliver Scherer-1/+1
2019-01-08Prepare everything for distributing miri via rustupOliver Scherer-0/+11
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-10bootstrap: fix editionljedrz-4/+4
2018-07-23Replace a few expect+format combos with unwrap_or_else+panicljedrz-1/+1
2018-07-01Did you mean to block nightlies on clippy?Oliver Schneider-0/+11
2018-04-17Remove uses of Build across Builder stepsMark Simulacrum-16/+15
2018-04-08rustbuild: canonicalize prefix `install_sh`Tamir Duberstein-1/+3
Testing: ``` $ git diff diff --git a/config.toml.example b/config.toml.example index 9dd3002506..b47bc490cd 100644 --- a/config.toml.example +++ b/config.toml.example @@ -196,7 +196,7 @@ [install] # Instead of installing to /usr/local, install to this path instead. -#prefix = "/usr/local" +prefix = "install-prefix" # Where to install system configuration files # If this is a relative path, it will get installed in `prefix` above $ mkdir install-prefix $ ./x.py install -i --stage 0 --config config.toml.example ... $ ls install-prefix/ bin lib share ``` Closes #36989.
2018-04-03Avoid printing output when in dry run modeMark Simulacrum-3/+4
2018-03-12Auto merge of #48295 - Keruspe:master, r=alexcrichtonbors-2/+7
rustbuild: pass datadir to rust-installer This fixes zsh completion install when $datadir != $prefix/share
2018-03-08Remove ONLY_BUILD.Mark Simulacrum-4/+29
All uses are replaced with not accessing run.target/run.host, and instead directly using run.builder.build.build.
2018-03-08Remove ONLY_BUILD_TARGETS.Mark Simulacrum-2/+1
All cases where it is used can be replaced by substituing run.host for run.builder.build.build; that is its only effect. As such, it is removable.
2018-03-08bootstrap: pass datadir to rust-installerMarc-Antoine Perennou-2/+7
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2018-02-07Refactor checks on list of extended tools.O01eg-12/+21
2018-02-05Add build.tools option to manage installation of extended rust tools.O01eg-7/+14
2017-11-16rustbuild: Install rustfmt as part of extended buildMarc-Antoine Perennou-0/+11
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-11-07Rollup merge of #45588 - Keruspe:master, r=alexcrichtonkennytm-2/+5
rustbuild: don't try to install rls if ToolState is not Testing We already do that for the Dist Step so we would end up trying to install something that we didn't dist.
2017-11-06Ensure dist::Std for every libstd target. (Closes: #42320)Ximin Luo-9/+9
This fixes cross-compile installation. Half of the logic is actually in there already in install.rs:install_std but it fails with an error like: sh: 0: Can't open /<<BUILDDIR>>/rustc-1.21.0+dfsg1/build/tmp/dist/rust-std-1.21.0-powerpc64le-unknown-linux-gnu/install.sh because the target-arch dist tarball wasn't built as well.