diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/rust/rls/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/rust/rls/default.nix | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/development/compilers/rust/rls/default.nix b/nixpkgs/pkgs/development/compilers/rust/rls/default.nix index 4cf507fbf5c..06b1b9b1e64 100644 --- a/nixpkgs/pkgs/development/compilers/rust/rls/default.nix +++ b/nixpkgs/pkgs/development/compilers/rust/rls/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, rustPlatform +{ stdenv, makeWrapper, fetchFromGitHub, rustPlatform , openssh, openssl, pkgconfig, cmake, zlib, curl, libiconv , CoreFoundation, Security }: @@ -10,8 +10,9 @@ rustPlatform.buildRustPackage { dontUpdateAutotoolsGnuConfigScripts = true; cargoVendorDir = "vendor"; + buildAndTestSubdir = "src/tools/rls"; + preBuild = '' - pushd src/tools/rls # client tests are flaky rm tests/client.rs ''; @@ -19,27 +20,34 @@ rustPlatform.buildRustPackage { # a nightly compiler is required unless we use this cheat code. RUSTC_BOOTSTRAP=1; + # As of rustc 1.45.0, these env vars are required to build rls + # (due to https://github.com/rust-lang/rust/pull/72001) + CFG_RELEASE = "${rustPlatform.rust.rustc.version}-nightly"; + CFG_RELEASE_CHANNEL = "nightly"; + # rls-rustc links to rustc_private crates CARGO_BUILD_RUSTFLAGS = if stdenv.isDarwin then "-C rpath" else null; nativeBuildInputs = [ pkgconfig cmake ]; - buildInputs = [ openssh openssl curl zlib libiconv rustPlatform.rust.rustc.llvm ] + buildInputs = [ openssh openssl curl zlib libiconv makeWrapper rustPlatform.rust.rustc.llvm ] ++ (stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation Security ]); doCheck = true; - preInstall = "popd"; - doInstallCheck = true; installCheckPhase = '' $out/bin/rls --version ''; + RUST_SRC_PATH = rustPlatform.rustcSrc; + postInstall = '' + wrapProgram $out/bin/rls --set-default RUST_SRC_PATH ${rustPlatform.rustcSrc} + ''; + meta = with stdenv.lib; { description = "Rust Language Server - provides information about Rust programs to IDEs and other tools"; homepage = "https://github.com/rust-lang/rls/"; license = with licenses; [ asl20 /* or */ mit ]; maintainers = with maintainers; [ symphorien ]; - platforms = platforms.all; }; } |