summaryrefslogtreecommitdiff
path: root/contrib/depends/packages/native_mrustc.mk
diff options
context:
space:
mode:
authorCzarek Nakamoto <cyjan@mrcyjanek.net>2025-05-01 07:34:34 +0000
committerCzarek Nakamoto <cyjan@mrcyjanek.net>2025-07-13 15:31:13 +0200
commit92e66e40f0d86e1164d034f24fcaa6d7e4aa138c (patch)
treee078cd3fee6b72dda5810d9c827f927bbf94bd18 /contrib/depends/packages/native_mrustc.mk
parentafc15659dfa57eb649b7ee3e8f2a9e0128160ee2 (diff)
add mrustc
Diffstat (limited to 'contrib/depends/packages/native_mrustc.mk')
-rw-r--r--contrib/depends/packages/native_mrustc.mk41
1 files changed, 41 insertions, 0 deletions
diff --git a/contrib/depends/packages/native_mrustc.mk b/contrib/depends/packages/native_mrustc.mk
new file mode 100644
index 0000000..3fe49cd
--- /dev/null
+++ b/contrib/depends/packages/native_mrustc.mk
@@ -0,0 +1,41 @@
+package=native_mrustc
+$(package)_version=0.11
+$(package)_download_path=https://github.com/thepowersgang/mrustc/archive
+$(package)_download_file=b6754f574f8846eb842feba4ccbeeecb10bdfacc.tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=4b006089cf770fd31971ac93d690bf485483a4a309460a6ef41fa64cf1f87649
+$(package)_dependencies=native_ccache
+
+define $(package)_set_vars
+$(package)_config_opts=
+$(package)_build_opts=
+$(package)_build_env=
+endef
+
+define $(package)_preprocess_cmds
+ cd $($(package)_extract_dir) && \
+ if [ -f script-overrides/stable-1.54.0-macos/build_std.txt ]; then \
+ ARCH=`uname -m | sed 's/arm64/aarch64/'` && \
+ sed -i.bak "s/STD_ENV_ARCH=[a-zA-Z0-9_]*/STD_ENV_ARCH=$$ARCH/" script-overrides/stable-1.54.0-macos/build_std.txt; \
+ fi && \
+ if [ `uname -s` = "Darwin" ]; then \
+ echo 'Patching mrustc to work with clang on macOS' && \
+ sed -i.bak 's/-fno-tree-sra//g' Makefile && \
+ grep -rl -- "-fno-tree-sra" . | xargs sed -i.bak 's/-fno-tree-sra//g'; \
+ fi
+endef
+
+define $(package)_build_cmds
+ cd $($(package)_extract_dir) && \
+ $($(package)_build_env) PARLEVEL=$(shell nproc) ./build-1.54.0.sh -j$(shell nproc)
+endef
+
+define $(package)_stage_cmds
+ mkdir -p $($(package)_staging_dir)/native/bin $($(package)_staging_dir)/native/lib && \
+ cp bin/mrustc bin/minicargo $($(package)_staging_dir)/native/bin && \
+ cp -r output-1.54.0 $($(package)_staging_dir)/native/lib
+endef
+
+define $(package)_postprocess_cmds
+ rm -rf $($(package)_staging_dir)/native/lib/output-1.54.0/rustc-build
+endef \ No newline at end of file