summary refs log tree commit diff
path: root/src/bootstrap/tool.rs
AgeCommit message (Collapse)AuthorLines
2018-04-17Don't inject clippy into rls on stable/betaOliver Schneider-1/+2
2018-03-26rustbuild: Fail the build if we build Cargo twiceAlex Crichton-1/+74
This commit updates the `ToolBuild` step to stream Cargo's JSON messages, parse them, and record all libraries built. If we build anything twice (aka Cargo) it'll most likely happen due to dependencies being recompiled which is caught by this check.
2018-03-25rustbuild: Disable docs on cross-compiled buildsAlex Crichton-0/+4
This commit disables building documentation on cross-compiled compilers, for example ARM/MIPS/PowerPC/etc. Currently I believe we're not getting much use out of these documentation artifacts and they often take 10-15 minutes total to build as it requires building rustdoc/rustbook and then also generating all the documentation, especially for the reference and the book itself. In an effort to cut down on the amount of work that we're doing on dist CI builders in light of recent timeouts this was some relatively low hanging fruit to cut which in theory won't have much impact on the ecosystem in the hopes that the documentation isn't used too heavily anyway. While initial analysis in #48827 showed only shaving 5 minutes off local builds the same 5 minute conclusion was drawn from #48826 which ended up having nearly a half-hour impact on the bots. In that sense I'm hoping that we can land this and test out what happens on CI to see how it affects timing. Note that all tier 1 platforms, Windows, Mac, and Linux, will continue to generate documentation.
2018-03-17rustbuild: Tweak where timing information goesAlex Crichton-6/+6
This commit tweaks where timing and step information is printed out as part of the build, ensuring that we do it as close to the location where work happens as possible. In rustbuild various functions may perform long blocking work as dependencies are assembled, so if we print out timing information early on we may accidentally time more than just the step we were intending to time!
2018-03-16Automatically enable the `clippy` feature of `rls` if clippy buildsOliver Schneider-3/+21
2018-02-08Convert python script to rustGuillaume Gomez-0/+1
2017-12-27Clarify toolstate names. Move publish.py to a more convenient location.kennytm-2/+2
2017-12-27Revert "Add a file to trivially disable tool building or testing"kennytm-24/+13
This reverts commit ab018c76e14b87f3c9e0b7384cc9b02d94779cd5. This also adds the `ToolBuild::is_ext_tool` field to replace the previous `ToolBuild::expectation` field, to indicate whether a build-failure of certain tool is essential.
2017-12-03Record build and test result of extended tools into toolstates.json.kennytm-1/+13
2017-11-22Always ignore build failure of failable tools (rls, rustfmt, clippy, miri).kennytm-2/+9
If build failed for these tools, they will be automatically skipped from distribution, and will not fail the whole build. Test failures are *not* ignored, nor build failure of other tools (e.g. cargo). Therefore it should have no observable effect to the current CI system. This is step 1/8 of automatic management of broken tools #45861.
2017-11-16rustbuild: make tidy happyMarc-Antoine Perennou-1/+2
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-11-16rustbuild: dist cargo-fmt as part of rustfmtMarc-Antoine Perennou-0/+1
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-11-16rustbuild: use a macro to define "extended" toolsMarc-Antoine Perennou-135/+50
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-11-03issue #45357 set clippy build condition to extended.matt rice-4/+2
2017-10-26issue #45357 don't build clippy stage 1matt rice-1/+4
2017-10-21rustbuild: Build stage 1 error index generator at stage 0Oliver Middleton-5/+5
At stage 1 rustdoc is built at stage 0 so the error index generator should be as well. This fixes `x.py --stage 1 doc` as rustdoc doesn't even build at stage 1.
2017-10-19Make tools which may not build return Option.Mark Simulacrum-18/+22
This makes it mandatory for other steps to have to handle the potential failure instead of failing in an odd way later down the road.
2017-10-18Make sure to clear out the stageN-{rustc,std,tools} directories.Mark Simulacrum-12/+32
We copy built tool binaries into a dedicated directory to avoid deleting them, stageN-tools-bin. These aren't ever cleared out by code, since there should be no reason to do so, and we'll simply overwrite them as necessary. When clearing out the stageN-{std,rustc,tools} directories, make sure to delete both Cargo directories -- per-target and build scripts. This ensures that changing libstd doesn't cause problems due to build scripts not being rebuilt, even though they should be.
2017-10-15rustbuild: Support specifying archiver and linker explicitlyVadim Petrochenkov-1/+1
2017-10-10Enable building clippy in CIOliver Schneider-2/+2
2017-09-28Update to the `cc` crateAlex Crichton-0/+4
This is the name the `gcc` crate has moved to
2017-09-27Add RLS and Rustfmt to the toolstate mechanismNick Cameron-2/+2
2017-09-26Allow rustdoc to get compiled with debuginfoMark Simulacrum-0/+5
2017-09-19Disable clippy buildingOliver Schneider-1/+1
2017-09-19Add clippy to `toolstate.toml`Oliver Schneider-2/+2
2017-09-17Rebase falloutOliver Schneider-0/+1
2017-09-17Add a file to trivially disable tool building or testingOliver Schneider-3/+13
2017-09-17Get the miri test suite to run inside the rustc dev environmentOliver Schneider-0/+35
2017-09-17Rollup merge of #44533 - nrc:rustfmt-submod, r=alexcrichtonTim Neumann-0/+34
Add Rustfmt r? @alexcrichton
2017-09-16Rollup merge of #44616 - alexcrichton:rustdoc-fix-again-whee, r=Mark-SimulacrumAlex Crichton-3/+5
rustbuild: Fix test "test rustdoc" invocation Previously it would use the librustc output directory which would cause rustdoc to get entirely recompiled, whereas the intention is that it uses the already-compiled artifacts from building rustdoc itself, using the tool output directory
2017-09-15rustbuild: Fix test "test rustdoc" invocationAlex Crichton-3/+5
Previously it would use the librustc output directory which would cause rustdoc to get entirely recompiled, whereas the intention is that it uses the already-compiled artifacts from building rustdoc itself, using the tool output directory
2017-09-15rustbuild: Compile the error-index in stage 2Alex Crichton-2/+14
Right now we comiple rustdoc in stage 2 and the error index in stage 0, which ends up compiling rustdoc twice! To avoid compiling rustdoc twice (which takes awhile) let's just compile it once in stage 2.
2017-09-13Build and test RustfmtNick Cameron-0/+34
2017-09-09rustbuild: Switch back to using hard linksAlex Crichton-5/+15
The `copy` function historically in rustbuild used hard links to speed up the copy operations that it does. This logic was backed out, however, in #39518 due to a bug that only showed up on Windows, described in #39504. The cause described in #39504 happened because Cargo, on a fresh build, would overwrite the previous artifacts with new hard links that Cargo itself manages. This behavior in Cargo was fixed in rust-lang/cargo#4390 where it no longer should overwrite files on fresh builds, opportunistically leaving the filesystem intact and not touching it. Hopefully this can help speed up local builds by doing fewer copies all over the place!
2017-09-03Auto merge of #44176 - nrc:update-rls, r=alexcrichtonbors-0/+1
Update rls And expose the `CFG_VERSION` env var to tools so they can determine the version of Rust. This gets the RLS back on master and so completes the PR dance for the generators PR. r? @alexcrichton
2017-09-02Auto merge of #43886 - oli-obk:clippy, r=nrcbors-0/+38
Add clippy as a submodule ~~This builds clippy as part of `./x.py build` (locally and in CI).~~ This allows building clippy with `./x.py build src/tools/clippy` ~~Needs https://github.com/nrc/dev-tools-team/issues/18#issuecomment-322456461 to be resolved before it can be merged.~~ Contributers can simply open a PR to clippy and point the submodule at the `pull/$pr_number/head` branch. This does **not** build clippy or test the clippy test suite at all as per https://github.com/nrc/dev-tools-team/issues/18#issuecomment-321411418 r? @nrc cc @Manishearth @llogiq @mcarton @alexcrichton
2017-08-31Set CFG_VERSION env var for tool buildsNick Cameron-0/+1
2017-08-28rustbuild: Fix dependencies of build-manifestAlex Crichton-1/+1
No need to depend on librustc! All we need is libstd Closes #44140
2017-08-24Require adding clippy's path to the `x.py` invocationOliver Schneider-1/+1
2017-08-15Add clippy as a submoduleOliver Schneider-0/+38
2017-08-13Build rustdoc with the native build tripleMark Simulacrum-1/+1
2017-08-13Cargotest needs only one rustdoc.exe to exist on WindowsMark Simulacrum-1/+4
2017-08-13Clean tools after building libstd/libtest/librustc.Mark Simulacrum-6/+4
This fixes the bug we previously had where we'd build a libtest tool after building a libstd tool and clear out the libstd tool. Since we clear out all tools for a given stage on invocations of CleanTools after lib{std, test, rustc} change, we need to make sure that all tools built with that stage will be built after the clearing is done. The fix contained here technically isn't perfect; there is still an edge case of compiling a libstd tool, then compiling libtest, which will clear out the libstd tool and it won't ever get rebuilt within that session of rustbuild. This is where the caching system used today shows it's problems -- in effect, all tools depend on a global counter of the stage being cleared out. We can implement such a counter in a future patch to ensure that tools are rebuilt as needed, but it is deemed unlikely that it will be required in practice, since most if not all tools are built after the relevant stage's std/test/rustc are built, though this is only an opinion and hasn't been verified.
2017-08-13Build rustdoc only at the top stageMark Simulacrum-3/+3
2017-08-13Build rustdoc with the stageN compiler in N >= 2.Mark Simulacrum-0/+4
This permits proc macro crates to correctly work with rustdoc.
2017-08-13Make the message for building rustdoc slightly nicerMark Simulacrum-32/+48
2017-08-13Add ability to ignore git when building rust.Mark Simulacrum-1/+1
Some users of the build system change the git sha on every build due to utilizing git to push changes to a remote server. This allows them to simply configure that away instead of depending on custom patches to rustbuild.
2017-07-27Correct a few run.host invocations where run.target is intended.Mark Simulacrum-3/+3
2017-07-27Explain why we subtract one from the stageMark Simulacrum-0/+3
2017-07-27Build rustdoc on-demand.Mark Simulacrum-1/+52
Rustdoc is no longer compiled in every stage, alongside rustc, instead it is only compiled when requested, and generally only for the last stage.