61 lines
1.7 KiB
Bash
Executable file
61 lines
1.7 KiB
Bash
Executable file
#!/usr/bin/env zsh
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
|
|
# creates a universal tar build from build-x86_64 and build-arm64
|
|
# First argument is <root_dir> where build dirs reside.
|
|
|
|
consolidate_universal_binaries () {
|
|
# echo "dirs ${DIR_X86} :: ${DIR_UNI}"
|
|
for f in "${@}"; do
|
|
# Only try to consolidate Mach-O and static libs
|
|
if [[ -n $(file "${f}" | grep "Mach-O") || "${f:(-2)}" = ".a" ]]; then
|
|
# echo "${BUILDROOT}/${DEPBUILD_X86_64_DIR}/${f##*test-i/}"
|
|
LIPO_OUTPUT=$(lipo -info "${f}" | grep Non-fat 2> /dev/null)
|
|
if [[ -n ${LIPO_OUTPUT} ]]; then
|
|
if [[ -f "${DIR_X86}/${f##*${DIR_UNI}/}" ]]; then
|
|
echo "creating universal binary -- ${f##*${DIR_UNI}/}"
|
|
lipo -create "${f}" "${DIR_X86}/${f##*${DIR_UNI}/}" -output "${f}"
|
|
fi
|
|
fi
|
|
# log "ignoring ${f}"
|
|
fi
|
|
done
|
|
}
|
|
|
|
consolidate_build_dirs() {
|
|
DIR_X86=${1}
|
|
local DIR_ARM=${2}
|
|
local DIR_UNI=${3}
|
|
|
|
rsync -aq ${DIR_ARM}/ ${DIR_UNI}
|
|
consolidate_universal_binaries $(find "${DIR_UNI}" -type f)
|
|
}
|
|
|
|
if [[ ${#@} < 1 ]]; then
|
|
echo "script needs root_dir of builds to consolidate as input"
|
|
exit
|
|
fi
|
|
|
|
root_dir=${1}
|
|
|
|
if [[ ! -d ${root_dir} ]]; then
|
|
echo "provided path is not a directory"
|
|
echo "path: ${root_dir}"
|
|
fi
|
|
|
|
dir_x86="${root_dir}/build-x86_64"
|
|
dir_arm="${root_dir}/build-arm64"
|
|
dir_uni="${root_dir}/build_uni"
|
|
|
|
|
|
if [[ -d "${dir_x86}" && -d "${dir_arm}" ]]; then
|
|
consolidate_build_dirs "${dir_x86}" "${dir_arm}" "${dir_uni}"
|
|
else
|
|
if [[ -d "${dir_x86}" ]]; then
|
|
rsync -aq "${dir_x86}/" "${dir_uni}"
|
|
else
|
|
rsync -aq "${dir_arm}/" "${dir_uni}"
|
|
fi
|
|
fi
|