pantry/projects/rust-lang.org/package.yml
Jacob Heider b38bd2211e fix(rust)
2023-03-09 20:09:53 -05:00

87 lines
1.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

distributable:
url: https://static.rust-lang.org/dist/rustc-{{ version }}-src.tar.gz
strip-components: 1
versions:
github: rust-lang/rust
strip: /^Rust /
companions:
rust-lang.org/cargo: '*'
provides:
- bin/cargo-clippy
- bin/cargo-fmt
- bin/clippy-driver
- bin/rust-analyzer
- bin/rust-gdb
- bin/rust-gdbgui
- bin/rust-lldb
- bin/rustc
- bin/rustdoc
- bin/rustfmt
#TODO: unimplemented idea for the “options” feature
options:
- clippy
- rustfmt
- analysis
- { name: rust-demangler, default: false }
dependencies:
tea.xyz/gx/cc: c99
#FIXME ^^ strictly rustc only needs a linker
zlib.net: 1
build:
dependencies:
tea.xyz/gx/make: '*' #FIXME surely we dont need make AND ninja
cmake.org: ^3.20
ninja-build.org: ^1.10
python.org: 3
openssl.org: '*' # needed to build openssl-sys
freedesktop.org/pkg-config: ^0.29
crates.io/semverator: 0
script: |-
# --enable-optimize not available as of 1.63.0
if semverator satisfies '<1.63' {{ version }}; then
export ARGS="$ARGS --enable-optimize"
fi
# 1.68.0 introduced a regression w.r.t. CI builds
# https://github.com/rust-lang/rust/issues/108959
if semverator satisfies ^1.68 {{ version }}; then
sed -i.bak -e 's/if CiEnv::is_ci() {/if CiEnv::is_ci() \&\& config.rust_info.is_managed_git_subrepository() {/' src/bootstrap/native.rs
rm src/bootstrap/native.rs.bak
fi
./configure $ARGS
make install
for tool in $tools; do
./x.py install $tool
done
rm -rf {{prefix}}/share/doc
env:
ARGS:
- --enable-vendor
- --prefix={{ prefix }}
- --enable-ninja
- --disable-docs # docs are online
- --tools=clippy,rustfmt,analysis
tools:
- clippy
- rustfmt
- rust-analyzer
test:
script: |
mv $FIXTURE hello.rs
rustc hello.rs
./hello
fixture: |
fn main() {
println!("Hello World!");
}