diff --git a/pkg.info b/pkg.info index 023f4e6..4cca17f 100644 --- a/pkg.info +++ b/pkg.info @@ -1,9 +1,15 @@ name: rustc description: The rust programming language compiler version: 1.89.0 +revision: 2 url: https://www.rust-lang.org/ license: Apache-2.0 or MIT architecture: any depends: ["gcc","glibc","libffi","libxml2","llvm","ncurses","openssl","sqlite","xz-utils","zlib","zstd"] make_depends: ["cmake","curl","python3"] type: source +split_packages: + - name: rustc + - name: rust-src + description: Rust standard library source code + depends: ["rustc"] diff --git a/source-files/config.toml b/source-files/config.toml index c1966d6..8506c77 100644 --- a/source-files/config.toml +++ b/source-files/config.toml @@ -8,7 +8,7 @@ download-ci-llvm = false docs = false extended = true locked-deps = true -tools = ["cargo", "clippy", "rustdoc", "rustfmt"] +tools = ["cargo", "clippy", "rustdoc", "rustfmt", "rust-analyzer-proc-macro-srv", "analysis", "src"] vendor = true [install] diff --git a/source.sh b/source.sh index 17302bf..b7ac213 100644 --- a/source.sh +++ b/source.sh @@ -27,10 +27,30 @@ build() { # The package function is executed in the source directory # This function is used to move the compiled files into the output directory -package() { +package_rustc() { DESTDIR="$BPM_OUTPUT" python3 x.py install + # Move src subdirectory to rust-src package + mkdir "$BPM_SOURCE"/output-rust-src + install -d "$BPM_SOURCE"/output-rust-src/usr/lib/rustlib/ + mv "$BPM_OUTPUT"/usr/lib/rustlib/src "$BPM_SOURCE"/output-rust-src/usr/lib/rustlib/src + + # Remove unnecessary files + rm "$BPM_OUTPUT"/usr/lib/rustlib/{components,install.log,rust-installer-version,uninstall.sh} + rm "$BPM_OUTPUT"/usr/lib/rustlib/manifest-* + + # Install package licences install -Dm644 "$BPM_SOURCE"/COPYRIGHT "$BPM_OUTPUT"/usr/share/licenses/rustc/COPYRIGHT install -Dm644 "$BPM_SOURCE"/LICENSE-MIT "$BPM_OUTPUT"/usr/share/licenses/rustc/LICENSE-MIT install -Dm644 "$BPM_SOURCE"/LICENSE-APACHE "$BPM_OUTPUT"/usr/share/licenses/rustc/LICENSE-APACHE } + +package_rust-src() { + # Replace 'output' directory with 'output-rust-src' + rmdir "$BPM_OUTPUT" + mv "$BPM_SOURCE"/output-rust-src "$BPM_OUTPUT" + + # Symlink to rust licence directory + install -d "$BPM_OUTPUT"/usr/share/licenses/ + ln -sf rustc "$BPM_OUTPUT"/usr/share/licenses/rust-src +}