dockcross-command.sh: support multi-arch tags

This commit is contained in:
Matt McCormick 2025-02-21 15:51:36 -05:00
parent 055c60ebab
commit de6a4b0be3
2 changed files with 22 additions and 7 deletions

View File

@ -4,8 +4,14 @@ if (( $# >= 2 )); then
image_complet=$1
image=${image_complet%:*}
tag=${image_complet#*:}
host_arch=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')
if test $tag = $image; then
tag="latest"
# use multiarch image if available
if docker images | grep dockcross/${image} | grep latest-${host_arch} >/dev/null; then
tag="latest-${host_arch}"
else
tag="latest"
fi
fi
shift 1
@ -16,7 +22,7 @@ if (( $# >= 2 )); then
# docker pull "dockcross/$image:$tag"
echo "Make script dockcross-$image"
docker run --rm dockcross/"$image" > ./dockcross-"$image"
docker run --rm dockcross/"$image:$tag" > ./dockcross-"$image"
chmod +x ./dockcross-"$image"
echo "Run command in dockcross-$image"

View File

@ -1,10 +1,19 @@
#!/usr/bin/env bash
if (( $# >= 1 )); then
image_complet=$1
image=${image_complet%:*}
tag=${image_complet#*:}
image_complete=$1
image=${image_complete%:*}
tag=${image_complete#*:}
build_file=build-$image
host_arch=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')
if test $tag = $image; then
# use multiarch image if available
if docker images | grep dockcross/${image} | grep latest-${host_arch} >/dev/null; then
tag="latest-${host_arch}"
else
tag="latest"
fi
fi
shift 1
make_arg=$*
@ -14,11 +23,11 @@ if (( $# >= 1 )); then
# docker pull "dockcross/$image:$tag"
echo "Make script dockcross-$image"
docker run --rm dockcross/"$image" > ./dockcross-"$image"
docker run --rm dockcross/"$image:$tag" > ./dockcross-"$image"
chmod +x ./dockcross-"$image"
echo "Build $build_file"
./dockcross-"$image" -i dockcross/"$image":latest bash -c 'make CXX=${CXX} CC=${CC} AR=${AR} AS=${AS} LD=${LD} CPP=${CPP} FC=${FC} '"$make_arg"
./dockcross-"$image" -i dockcross/"$image:$tag" bash -c 'make CXX=${CXX} CC=${CC} AR=${AR} AS=${AS} LD=${LD} CPP=${CPP} FC=${FC} '"$make_arg"
else
echo "Usage: ${0##*/} <docker image (ex: linux-x64/linux-x64-clang/linux-arm64/windows-shared-x64/windows-static-x64...)> <make arg.>"
exit 1