From: Romain Naour <romain.naour@smile.fr>
To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
James Hilliard <james.hilliard1@gmail.com>,
Christian Stewart <christian@paral.in>,
Buildroot List <buildroot@buildroot.org>,
Matt Weber <Matthew.Weber@rockwellcollins.com>,
"Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Patrick Havelange <patrick.havelange@essensium.com>
Subject: Re: [Buildroot] [PATCH v3 05/11] package/pkg-cargo.mk: introduce the cargo package infrastructure
Date: Fri, 7 Jan 2022 11:05:52 +0100 [thread overview]
Message-ID: <8b8ad2f1-b915-ff0d-54c4-0e1c36112db0@smile.fr> (raw)
In-Reply-To: <20220106210000.397694-6-thomas.petazzoni@bootlin.com>
Hello Thomas, All,
Le 06/01/2022 à 21:59, Thomas Petazzoni a écrit :
> From: Patrick Havelange <patrick.havelange@essensium.com>
>
> In order to be package agnostic, the install phase is now using cargo
> instead of install. TARGET_CONFIGURE_OPTS is now also set when running
> cargo in order to support cross compiling C code within cargo.
>
> This commit also adds support/download/cargo-post-process to perform
> the vendoring on Cargo packages.
>
> The <pkg>_LICENSE variable of cargo packages is expanded with ",
> vendored dependencies licenses probably not listed" as currently for
> all packages, the licenses of the vendored dependencies are not taken
> into account.
>
> Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com>
> [Thomas: add support for host-cargo-package and vendoring]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> +#
> +# Build step. Only define it if not already defined by the package .mk
> +# file.
> +#
> +ifndef $(2)_BUILD_CMDS
> +ifeq ($(4),target)
> +define $(2)_BUILD_CMDS
> + cd $$(@D) && \
> + $$(TARGET_MAKE_ENV) \
> + $$(TARGET_CONFIGURE_OPTS) \
> + $$($(2)_CARGO_ENV) \
> + cargo build \
> + --offline \
> + --target $$(RUSTC_TARGET_NAME) \
> + $$(if $$(BR2_ENABLE_DEBUG),--debug,--release) \
> + --manifest-path Cargo.toml \
> + --locked \
> + -Z target-applies-to-host \
> + $$($(2)_CARGO_BUILD_OPTS)
> +endef
> +else # ifeq ($(4),target)
> +define $(2)_BUILD_CMDS
> + cd $$(@D) && \
> + $$(HOST_MAKE_ENV) \
> + RUSTFLAGS="$$(addprefix -C link-args=,$$(HOST_LDFLAGS))" \
> + $$($(2)_CARGO_ENV) \
> + cargo build \
> + --offline \
> + --release \
> + --manifest-path Cargo.toml \
> + --locked \
> + $$($(2)_CARGO_BUILD_OPTS)
> +endef
> +endif # ifeq ($(4),target)
> +endif # ifndef $(2)_BUILD_CMDS
> +
> +#
> +# Target installation step. Only define it if not already defined by
> +# the package .mk file.
> +#
> +ifndef $(2)_INSTALL_TARGET_CMDS
> +define $(2)_INSTALL_TARGET_CMDS
> + cd $$(@D) && \
> + $$(TARGET_MAKE_ENV) $$($(2)_CARGO_ENV) \
Removing "CC_$$(subst -,_,$$(RUSTC_TARGET_NAME))=$$(TARGET_CC) " [1]
and adding $$(TARGET_CONFIGURE_OPTS) fixes the build of bat package.
The package is still rebuild during the install step but at least it build...
[1] http://lists.busybox.net/pipermail/buildroot/2022-January/632610.html
Best regards,
Romain
> + cargo install \
> + --target $$(RUSTC_TARGET_NAME) \
> + --offline \
> + --root $$(TARGET_DIR)/usr/ \
> + --bins \
> + --path ./ \
> + --force \
> + --locked \
> + $$($(2)_CARGO_INSTALL_OPTS)
> +endef
> +endif
> +
> +ifndef $(2)_INSTALL_CMDS
> +define $(2)_INSTALL_CMDS
> + cd $$(@D) && \
> + $$(HOST_MAKE_ENV) \
> + RUSTFLAGS="$$(addprefix -C link-args=,$$(HOST_LDFLAGS))" \
> + $$($(2)_CARGO_ENV) \
> + cargo install \
> + --offline \
> + --root $$(HOST_DIR) \
> + --bins \
> + --path ./ \
> + --force \
> + --locked \
> + $$($(2)_CARGO_INSTALL_OPTS)
> +endef
> +endif
> +
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2022-01-07 10:06 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-06 20:59 [Buildroot] [PATCH v3 00/11] Support for Cargo and Go vendoring Thomas Petazzoni
2022-01-06 20:59 ` [Buildroot] [PATCH v3 01/11] support/download/dl-wrapper: add concept of download post-processing Thomas Petazzoni
2022-01-07 10:28 ` Yann E. MORIN
2022-01-06 20:59 ` [Buildroot] [PATCH v3 02/11] package/pkg-download.mk: add <pkg>_DOWNLOAD_POST_PROCESS variable Thomas Petazzoni
2022-01-07 10:35 ` Yann E. MORIN
2022-01-06 20:59 ` [Buildroot] [PATCH v3 03/11] support/download/post-process-helpers: add helper function for post process scripts Thomas Petazzoni
2022-01-07 10:36 ` Yann E. MORIN
2022-01-06 20:59 ` [Buildroot] [PATCH v3 04/11] package/pkg-golang.mk: implement Go vendoring support Thomas Petazzoni
2022-01-09 11:49 ` Romain Naour
2022-01-06 20:59 ` [Buildroot] [PATCH v3 05/11] package/pkg-cargo.mk: introduce the cargo package infrastructure Thomas Petazzoni
2022-01-07 1:12 ` James Hilliard
2022-01-07 9:52 ` Thomas Petazzoni
2022-01-07 22:30 ` James Hilliard
2022-01-07 22:59 ` Thomas Petazzoni
2022-01-08 3:21 ` James Hilliard
2022-01-08 13:52 ` Juergen Stuber
2022-01-07 10:05 ` Romain Naour [this message]
2022-01-07 10:26 ` Romain Naour
2022-01-07 10:44 ` Yann E. MORIN
2022-01-07 11:03 ` Romain Naour
2022-01-07 21:07 ` Romain Naour
2022-01-07 21:53 ` Thomas Petazzoni
2022-01-09 10:04 ` Thomas Petazzoni
2022-01-06 20:59 ` [Buildroot] [PATCH v3 06/11] docs/manual/cargo: document the cargo-package infrastructure Thomas Petazzoni
2022-01-06 20:59 ` [Buildroot] [PATCH v3 07/11] package/ripgrep: convert to cargo infrastructure Thomas Petazzoni
2022-01-06 20:59 ` [Buildroot] [PATCH v3 08/11] package/sentry-cli: re-add package Thomas Petazzoni
2022-01-06 22:04 ` Christian Stewart via buildroot
2022-01-06 22:29 ` Thomas Petazzoni
2022-01-06 22:38 ` Christian Stewart via buildroot
2022-01-06 22:59 ` Thomas Petazzoni
2022-01-06 20:59 ` [Buildroot] [PATCH v3 09/11] package/tinifier: new package Thomas Petazzoni
2022-01-06 22:30 ` Christian Stewart via buildroot
2022-01-06 20:59 ` [Buildroot] [PATCH v3 10/11] package/embiggen-disk: " Thomas Petazzoni
2022-01-06 22:11 ` Christian Stewart via buildroot
2022-01-06 20:59 ` [Buildroot] [PATCH v3 11/11] package/gocryptfs: " Thomas Petazzoni
2022-01-06 22:26 ` [Buildroot] [PATCH v3 00/11] Support for Cargo and Go vendoring Christian Stewart via buildroot
2022-01-06 22:29 ` Thomas Petazzoni
2022-01-08 22:39 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8b8ad2f1-b915-ff0d-54c4-0e1c36112db0@smile.fr \
--to=romain.naour@smile.fr \
--cc=Matthew.Weber@rockwellcollins.com \
--cc=buildroot@buildroot.org \
--cc=christian@paral.in \
--cc=james.hilliard1@gmail.com \
--cc=patrick.havelange@essensium.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=yann.morin.1998@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).