core: allow br2-external trees to provide pre-configured toolchains
Since we have a choice for the pre-configured pre-built toolchains,
there is no possbility for a br2-external to provide its own. The
only solution so far for defconfigs in br2-external trees is to use
BR2_TOOLCHAIN_EXTERNAL_CUSTOM and define all the bits by itself...
This is not so convemient, so offer a way for br2-external trees to
provide such pre-configured toolchains.
To allow for this, we now scan each br2-external tree and look for a
specific file, provides.toolchains.in. We generate a kconfig file that
sources each such file, and that generated file is sourced from within
the toolchain choice, thus making the toolchains from a br2-external
tree possible and available in the same location as the ones known to
Buildroot:
Toolchain --->
Toolchain type (External toolchain) --->
Toolchain --->
(X) Arm ARM 2019.03
( ) Linaro ARM 2018.05
( ) Custom toolchain
*** Toolchains from my-br2-ext-tree: ***
( ) My custom ARM toolchain
*** Toolchains from another-br2-ext-tree: ***
( ) Another custom ARM toolchain
( ) A third custom ARM toolchain
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
committed by
Peter Korsgaard
parent
edf32b021c
commit
fa037acee0
@@ -157,6 +157,7 @@ do_kconfig() {
|
|||||||
items=(
|
items=(
|
||||||
paths
|
paths
|
||||||
menus
|
menus
|
||||||
|
toolchains
|
||||||
)
|
)
|
||||||
|
|
||||||
for br2 in "${items[@]}"; do
|
for br2 in "${items[@]}"; do
|
||||||
@@ -196,6 +197,14 @@ do_kconfig() {
|
|||||||
fi
|
fi
|
||||||
printf '\n'
|
printf '\n'
|
||||||
} >>"${outputdir}/.br2-external.in.menus"
|
} >>"${outputdir}/.br2-external.in.menus"
|
||||||
|
|
||||||
|
if [ -f "${br2_ext}/provides/toolchains.in" ]; then
|
||||||
|
printf 'comment "Toolchains from: %s"\n' "${br2_desc}"
|
||||||
|
printf 'source "%s/provides/toolchains.in"\n' "${br2_ext}"
|
||||||
|
printf '\n'
|
||||||
|
else
|
||||||
|
printf '# No toolchain from: %s\n\n' "${br2_desc}"
|
||||||
|
fi >>"${outputdir}/.br2-external.in.toolchains"
|
||||||
done
|
done
|
||||||
|
|
||||||
printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus"
|
printf 'endmenu\n' >>"${outputdir}/.br2-external.in.menus"
|
||||||
|
|||||||
@@ -47,9 +47,12 @@ source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Confi
|
|||||||
|
|
||||||
# Kept last, so it remains the non-default choice, unless there isn't
|
# Kept last, so it remains the non-default choice, unless there isn't
|
||||||
# any available toolchain profile for the currently selected
|
# any available toolchain profile for the currently selected
|
||||||
# architecture.
|
# architecture, but before toolchains from br2-external trees.
|
||||||
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
|
source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
|
||||||
|
|
||||||
|
# Toolchains from br2-external trees, if any
|
||||||
|
source "$BR2_BASE_DIR/.br2-external.in.toolchains"
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
choice
|
choice
|
||||||
|
|||||||
Reference in New Issue
Block a user