about summary refs log tree commit diff
path: root/src/bootstrap/tool.rs
AgeCommit message (Collapse)AuthorLines
2018-06-03refactor, make requested changesCollins Abitekaniza-7/+7
2018-06-03refactor Mode enumCollins Abitekaniza-27/+27
2018-05-17Rename rustdoc to use underscoresMark Simulacrum-1/+1
2018-05-15Don't inject clippy into the rls anymoreOliver Schneider-9/+0
2018-05-04bootstrap: Fix LLVM bin path setup for Windows.Michael Woerister-3/+39
2018-04-17Remove uses of Build across Builder stepsMark Simulacrum-43/+39
2018-04-11Don't inject clippy into rls on stable/betaOliver Schneider-1/+2
2018-04-05Bump the bootstrap compiler to 1.26.0 betaAlex Crichton-1/+0
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-04-03Avoid printing output when in dry run modeMark Simulacrum-2/+3
2018-04-03Refactor to use a dry-run config instead of cfg(test)Mark Simulacrum-3/+3
This ensures that each build will support the testing design of "dry running" builds. It's also checked that a dry run build is equivalent step-wise to a "wet" run build; the graphs we generate when running are directly compared node/node and edge/edge, both for order and contents.
2018-04-03Stub out less codeMark Simulacrum-5/+1
2018-04-03Stub out various functions during testingMark Simulacrum-1/+5
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