about summary refs log tree commit diff
path: root/src/bootstrap/tool.rs
AgeCommit message (Collapse)AuthorLines
2018-08-02Update Cargo submoduleAlex Crichton-0/+4
Bring in some fixes for `cargo fix` notably
2018-07-26Refactor is_external_tool into source_typeTatsuyuki Ishi-11/+21
2018-07-25Discriminate between external and optional toolsTatsuyuki Ishi-13/+20
2018-07-25Deny bare_trait_objects globallyTatsuyuki Ishi-7/+23
2018-07-21Run the error index tool against the sysroot libdirMark Rousskov-2/+2
Previously when building the error index tool in stage 0 we would attempt to use stage 0 libraries, but because it depends on rustdoc, those don't exist: rustdoc is built against stage 1 libraries. This patch aligns those two and passes the stage 1 libdir to the error index.
2018-07-11Remove unused variableOliver Schneider-1/+0
2018-07-11Hitchhike with rls into stableOliver Schneider-1/+1
2018-07-09Also distribute cargo clippyOliver Schneider-0/+8
2018-07-09Inject clippy into the rls againOliver Schneider-0/+9
Also makes sure we actually point to the local rls
2018-07-06Rollup merge of #52080 - oli-obk:dep_dedup_diagnostics, r=kennytmkennytm-6/+22
Improve dependency deduplication diagnostics r? @kennytm this is obviously hard to test :laughing: cc #52072
2018-07-05Address review commentsOliver Schneider-12/+5
2018-07-05Only display difference of features, not all featuresOliver Schneider-4/+22
2018-07-05Vertical list of tools to checkOliver Schneider-2/+7
2018-07-05Update Cargo.lock dependenciesAlex Crichton-1/+4
Run `cargo update` and let's see how far we can get!
2018-07-03Compile stage0 tools with the raw bootstrap compilerAlex Crichton-15/+20
This commit updates the stage0 build of tools to use the libraries of the stage0 compiler instead of the compiled libraries by the stage0 compiler. This should enable us to avoid any stage0 hacks (like missing SIMD).
2018-07-01Did you mean to block nightlies on clippy?Oliver Schneider-1/+1
2018-06-25Do not build LLVM tools for any of the toolsMark Simulacrum-6/+3
None of the tools in the list should need LLVM tools themselves as far as I can tell; if this is incorrect, we can re-enable the tool building later. The primary reason for doing this is that rust-central-station uses the BuildManifest tool and building LLVM there is not cached: it takes ~1.5 hours on the 2 core machine. This commit should make nightlies and stable releases much faster.
2018-06-10Added comment to explain why only RustIstaller has `llvm_tools = false`.kennytm-0/+3
2018-06-10Allow some tools to be run without first building LLVM.kennytm-16/+25
Conservatively only disable LLVM for rust-installer. This should shave 5 minutes from the x86_64-gnu-distcheck job by not building LLVM twice.
2018-06-03thread tool modes throughCollins Abitekaniza-6/+17
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