module RbSys::Mkmf
def optional_rust_toolchain(builder)
def optional_rust_toolchain(builder) <<~MAKE RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN ?= #{builder.force_install_rust_toolchain} # Only run if the we are told to explicitly install the Rust toolchain ifneq ($(RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN),false) RB_SYS_RUSTUP_PROFILE ?= minimal # If the user passed true, we assume stable Rust. Otherwise, use what # was specified (i.e. RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN=beta) ifeq ($(RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN),true) RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN = stable endif # If a $RUST_TARGET is specified (i.e. for rake-compiler-dock), append # that to the profile. ifeq ($(RUST_TARGET),) RB_SYS_DEFAULT_TOOLCHAIN = $(RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN) else RB_SYS_DEFAULT_TOOLCHAIN = $(RB_SYS_FORCE_INSTALL_RUST_TOOLCHAIN)-$(RUST_TARGET) endif export CARGO_HOME ?= $(RB_SYS_BUILD_DIR)/$(RB_SYS_DEFAULT_TOOLCHAIN)/cargo export RUSTUP_HOME ?= $(RB_SYS_BUILD_DIR)/$(RB_SYS_DEFAULT_TOOLCHAIN)/rustup export PATH := $(CARGO_HOME)/bin:$(RUSTUP_HOME)/bin:$(PATH) export RUSTUP_TOOLCHAIN := $(RB_SYS_DEFAULT_TOOLCHAIN) export CARGO := $(CARGO_HOME)/bin/cargo $(CARGO): \t$(Q) $(MAKEDIRS) $(CARGO_HOME) $(RUSTUP_HOME) \tcurl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y \trustup toolchain install $(RB_SYS_DEFAULT_TOOLCHAIN) --profile $(RB_SYS_RUSTUP_PROFILE) \trustup default $(RB_SYS_DEFAULT_TOOLCHAIN) $(DLLIB): $(CARGO) endif MAKE end