1SUMMARY="Modern and safe systems programming language"
2DESCRIPTION="Rust is a systems programming language that runs blazingly fast, \
3prevents almost all crashes*, and eliminates data races."
4HOMEPAGE="https://www.rust-lang.org/"
5COPYRIGHT="2024 The Rust Project Developers"
6LICENSE="MIT"
7REVISION="1"
8
9case "$effectiveTargetArchitecture" in
10	x86)
11SOURCE_URI="https://dl.rust-on-haiku.com/dist/$portVersion/rust-$portVersion-i686-unknown-haiku.tar.xz"
12CHECKSUM_SHA256="9e6572b608564f84a4f2384e491b35defe817acc689b7f25e24be6360da0485c"
13SOURCE_DIR="rust-$portVersion-i686-unknown-haiku"
14		;;
15	x86_64)
16SOURCE_URI="https://dl.rust-on-haiku.com/dist/$portVersion/rust-$portVersion-x86_64-unknown-haiku.tar.xz"
17CHECKSUM_SHA256="6d41904e51b9b31adff70acace170bfca0dcc5a300823b046bb9ad14d56ba84a"
18SOURCE_DIR="rust-$portVersion-x86_64-unknown-haiku"
19		;;
20esac
21
22ARCHITECTURES="!x86_gcc2 ?x86 x86_64"
23SECONDARY_ARCHITECTURES="x86"
24DISABLE_SOURCE_PACKAGE=yes
25
26cargoVersion="0.77.0"
27rustfmtVersion="1.7.0"
28clippyVersion="0.1.76"
29rlsVersion="2.0.0"
30
31PROVIDES="
32	rust_bin$secondaryArchSuffix = $portVersion
33	cmd:rustc$secondaryArchSuffix = $portVersion
34	cmd:rustdoc$secondaryArchSuffix = $portVersion
35	cmd:rustfmt$secondaryArchSuffix = $portVersion
36	cmd:rust_analyzer$secondaryArchSuffix = $portVersion
37	cmd:rust_demangler$secondaryArchSuffix = $portVersion
38	cmd:rust_gdb$secondaryArchSuffix = $portVersion
39	cmd:rust_gdbgui$secondaryArchSuffix = $portVersion
40	cmd:rust_lldb$secondaryArchSuffix = $portVersion
41	cmd:cargo$secondaryArchSuffix = $cargoVersion
42	cmd:cargo_clippy$secondaryArchSuffix = $clippyVersion
43	cmd:cargo_fmt$secondaryArchSuffix = $cargoVersion
44	cmd:clippy_driver$secondaryArchSuffix = $clippyVersion
45	cmd:rls$secondaryArchSuffix = $rlsVersion
46	"
47REQUIRES="
48	haiku$secondaryArchSuffix
49	lib:libcrypto$secondaryArchSuffix
50	lib:libssl$secondaryArchSuffix
51	lib:libz$secondaryArchSuffix
52	"
53CONFLICTS="
54	rust$secondaryArchSuffix
55	"
56
57BUILD_REQUIRES="
58	haiku${secondaryArchSuffix}_devel
59	"
60
61relativeInstallDir="develop/tools$secondaryArchSubDir/rust"
62installDir="$prefix/$relativeInstallDir"
63
64INSTALL()
65{
66	./install.sh                                   \
67		--prefix=$installDir                       \
68		--docdir=$developDocDir                    \
69		--mandir=$manDir                           \
70		--sysconfdir=$dataDir                      \
71		--disable-ldconfig
72
73	# move zsh data to the datadir
74	mv $installDir/share/zsh $dataDir
75	rm -rf $installDir/share
76
77	# clean out unneccesary files created by the rust installer
78	rm $installDir/lib/rustlib/components
79	rm $installDir/lib/rustlib/install.log
80	rm $installDir/lib/rustlib/manifest-*
81	rm $installDir/lib/rustlib/rust-installer-version
82	rm $installDir/lib/rustlib/uninstall.sh
83
84	# link the binaries in $binDir
85	mkdir -p $binDir
86	for f in cargo cargo-clippy cargo-fmt clippy-driver rust-analyzer \
87	         rust-demangler rust-gdb rust-gdbgui rust-lldb rustc rustdoc \
88	         rustfmt rls; do
89		symlinkRelative -sfn $installDir/bin/$f $binDir
90	done
91
92	# make sure runtime_loader can find the libraries in the lib dir relative
93	# to the binaries
94	symlinkRelative -sfn $installDir/lib $installDir/bin/lib
95}
96