module RbSys::Mkmf
def create_rust_makefile(target, srcprefix = nil)
def create_rust_makefile(target, srcprefix = nil) if target.include?("/") target_prefix, target = File.split(target) target_prefix[0, 0] = "/" else target_prefix = "" end spec = Struct.new(:name, :metadata).new(target, {}) builder = Gem::Ext::CargoBuilder.new(spec) srcprefix ||= "$(srcdir)/#{srcprefix}".chomp("/") RbConfig.expand(srcdir = srcprefix.dup) # rubocop:disable Style/GlobalVars make_install = <<~MAKE target_prefix = #{target_prefix} CARGO_PROFILE = release CLEANLIBS = $(RUSTLIB) $(DLLIB) DISTCLEANDIRS = target/ RUBYARCHDIR = $(sitearchdir)$(target_prefix) RUSTLIB = #{dllib_path(builder)} TARGET = #{target} DLLIB = $(TARGET).#{RbConfig::CONFIG["DLEXT"]} #{base_makefile(srcdir)} #{env_vars(builder)} FORCE: ; $(DLLIB): FORCE \t#{cargo_command(srcdir, builder)} \t$(COPY) "$(RUSTLIB)" $@ install: $(DLLIB) \t$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR) all: #{$extout ? "install" : "$(DLLIB)"} MAKE File.write("Makefile", make_install) end