When running an IDE using RLS or just running cargo check, some large projects using crates that have big static builds of non Rust based native libraries, the build.rs of those dependencies run a complete build of the non Rust code.
One example is openssl, when using it in vendored mode, takes a lot of time to get feedback on an IDE because it will build openssl entirely, something it isn't needed for getting the information RLS or cargo check needs, they don't need a complete build of those crates.
Maybe standardizing some kind of environment variable passed to the build.rs program could tell these dependencies that the build is being run for RLS or cargo check, and these scripts could be updated to be smarter, avoiding the native build in these circumstances.
This will require cooperation of build.rs users but it is better than than the current status where an IDE takes too much time to give some feedback.
When running an IDE using RLS or just running
cargo check, some large projects using crates that have big static builds of non Rust based native libraries, thebuild.rsof those dependencies run a complete build of the non Rust code.One example is
openssl, when using it in vendored mode, takes a lot of time to get feedback on an IDE because it will build openssl entirely, something it isn't needed for getting the information RLS orcargo checkneeds, they don't need a complete build of those crates.Maybe standardizing some kind of environment variable passed to the
build.rsprogram could tell these dependencies that the build is being run for RLS or cargo check, and these scripts could be updated to be smarter, avoiding the native build in these circumstances.This will require cooperation of
build.rsusers but it is better than than the current status where an IDE takes too much time to give some feedback.