################################################################################
#
# cargo
#
################################################################################

CARGO_VERSION = 0.26.0
CARGO_SITE = $(call github,rust-lang,cargo,$(CARGO_VERSION))
CARGO_LICENSE = Apache-2.0 or MIT
CARGO_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT

CARGO_DEPS_SHA512 = 6ed2a1644c9b18fc24ddad5350d41b6c36cd5b62de4cf0b748a57b589f4f0ac12f91461989158d58d0892bf6fc2c1626cf574e7e2b9da4b0e35f72dfd88f9048
CARGO_DEPS_SITE = https://src.fedoraproject.org/repo/pkgs/cargo/$(CARGO_DEPS_SOURCE)/sha512/$(CARGO_DEPS_SHA512)
CARGO_DEPS_SOURCE = cargo-$(CARGO_VERSION)-vendor.tar.xz

CARGO_INSTALLER_VERSION = 4f994850808a572e2cc8d43f968893c8e942e9bf
CARGO_INSTALLER_SITE = $(call github,rust-lang,rust-installer,$(CARGO_INSTALLER_VERSION))
CARGO_INSTALLER_SOURCE = rust-installer-$(CARGO_INSTALLER_VERSION).tar.gz

HOST_CARGO_EXTRA_DOWNLOADS = \
	$(CARGO_DEPS_SITE)/$(CARGO_DEPS_SOURCE) \
	$(CARGO_INSTALLER_SITE)/$(CARGO_INSTALLER_SOURCE)

HOST_CARGO_DEPENDENCIES = \
	$(BR2_CMAKE_HOST_DEPENDENCY) \
	host-pkgconf \
	host-openssl \
	host-libhttpparser \
	host-libssh2 \
	host-libcurl \
	host-rustc \
	host-cargo-bin

HOST_CARGO_SNAP_BIN = $(HOST_CARGO_BIN_DIR)/cargo/bin/cargo
HOST_CARGO_HOME = $(HOST_DIR)/share/cargo

define HOST_CARGO_EXTRACT_DEPS
	@mkdir -p $(@D)/vendor
	$(call suitable-extractor,$(CARGO_DEPS_SOURCE)) \
		$(HOST_CARGO_DL_DIR)/$(CARGO_DEPS_SOURCE) | \
		$(TAR) --strip-components=1 -C $(@D)/vendor $(TAR_OPTIONS) -
endef

HOST_CARGO_POST_EXTRACT_HOOKS += HOST_CARGO_EXTRACT_DEPS

define HOST_CARGO_EXTRACT_INSTALLER
	@mkdir -p $(@D)/src/rust-installer
	$(call suitable-extractor,$(CARGO_INSTALLER_SOURCE)) \
		$(HOST_CARGO_DL_DIR)/$(CARGO_INSTALLER_SOURCE) | \
		$(TAR) --strip-components=1 -C $(@D)/src/rust-installer $(TAR_OPTIONS) -
endef

HOST_CARGO_POST_EXTRACT_HOOKS += HOST_CARGO_EXTRACT_INSTALLER

define HOST_CARGO_SETUP_DEPS
	mkdir -p $(@D)/.cargo
	( \
		echo "[source.crates-io]"; \
		echo "registry = 'https://github.com/rust-lang/crates.io-index'"; \
		echo "replace-with = 'vendored-sources'"; \
		echo "[source.vendored-sources]"; \
		echo "directory = '$(@D)/vendor'"; \
	) > $(@D)/.cargo/config
endef

HOST_CARGO_PRE_CONFIGURE_HOOKS += HOST_CARGO_SETUP_DEPS

HOST_CARGO_SNAP_OPTS = \
	--release \
	$(if $(VERBOSE),--verbose)

HOST_CARGO_ENV = \
	RUSTFLAGS="-Clink-arg=-Wl,-rpath,$(HOST_DIR)/lib" \
	CARGO_HOME=$(HOST_CARGO_HOME)

define HOST_CARGO_BUILD_CMDS
	(cd $(@D); $(HOST_MAKE_ENV) $(HOST_CARGO_ENV) $(HOST_CARGO_SNAP_BIN) \
		build $(HOST_CARGO_SNAP_OPTS))
endef

define HOST_CARGO_INSTALL_CMDS
	$(INSTALL) -D -m 0755 $(@D)/target/release/cargo $(HOST_DIR)/bin/cargo
	$(INSTALL) -D package/cargo/config.in \
		$(HOST_DIR)/share/cargo/config
	$(SED) 's/@RUSTC_TARGET_NAME@/$(RUSTC_TARGET_NAME)/' \
		$(HOST_DIR)/share/cargo/config
	$(SED) 's/@CROSS_PREFIX@/$(notdir $(TARGET_CROSS))/' \
		$(HOST_DIR)/share/cargo/config
endef

$(eval $(host-generic-package))
