This commit is contained in:
parent
79b153819a
commit
d14854a109
@ -57,17 +57,19 @@ function set_current_arch() {
|
||||
# ARCH_OS=linux-musl-cross
|
||||
# FULLARCH=aarch64-linux-musl-cross
|
||||
# ARCH_SHORT_PREFIX=aarch64-linux-musl
|
||||
# MUSL_PATH=/home/jde/.musl-cross/aarch64-linux-musl-cross
|
||||
# MUSL_PATH=/home/jde/.musl-cr oss/aarch64-linux-musl-cross
|
||||
# arch should just be x86_64 or aarch64
|
||||
export ARCH="${FULLARCH%%-*}"
|
||||
export ARCH_OS="${FULLARCH#*-}"
|
||||
export ARCH_SHORT_PREFIX="${FULLARCH%-*}"
|
||||
export MUSL_PATH="${MUSL_ROOT_PATH}/${FULLARCH}"
|
||||
export ARCH_MUSL_PATH="${MUSL_ROOT_PATH}/${FULLARCH}"
|
||||
export ARCH_SYSROOT="${ARCH_MUSL_PATH}/${ARCH_SHORT_PREFIX}/sysroot"
|
||||
|
||||
echo "ARCH: ${ARCH}"
|
||||
echo "ARCH_OS: ${ARCH_OS}"
|
||||
echo "ARCH_SHORT_PREFIX: ${ARCH_SHORT_PREFIX}"
|
||||
echo "MUSL_PATH: ${MUSL_PATH}"
|
||||
echo "ARCH_MUSL_PATH: ${ARCH_MUSL_PATH}"
|
||||
echo "ARCH_SYSROOT: ${ARCH_SYSROOT}"
|
||||
}
|
||||
|
||||
OLD_PWD="$PWD"
|
||||
@ -91,9 +93,9 @@ function build_arch() {
|
||||
|
||||
echo "Building for ${ARCH} in ${ARCH_BUILD_DIR}"
|
||||
|
||||
if [ ! -f "${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" ]; then
|
||||
if [ ! -f "${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" ]; then
|
||||
echo "Musl cross toolchain not found for ${ARCH}"
|
||||
echo "Missing file: ${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++"
|
||||
echo "Missing file: ${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -102,19 +104,28 @@ function build_arch() {
|
||||
CMAKE_BUILD_TYPE="Debug"
|
||||
fi
|
||||
|
||||
export CC="${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-gcc"
|
||||
export CXX="${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++"
|
||||
export SYSROOT="${MUSL_PATH}/${ARCH_OS}/sysroot"
|
||||
export CC="${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-gcc"
|
||||
export CXX="${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++"
|
||||
export SYSROOT="${ARCH_SYSROOT}"
|
||||
|
||||
export OPENSSL_ROOT_DIR="${SYSROOT}/usr"
|
||||
export CFLAGS="--sysroot=$SYSROOT"
|
||||
export CXXFLAGS="--sysroot=$SYSROOT"
|
||||
export CFLAGS="--sysroot=$SYSROOT -I$SYSROOT/usr/include"
|
||||
export CXXFLAGS="--sysroot=$SYSROOT -I$SYSROOT/usr/include"
|
||||
export LDFLAGS="--sysroot=$SYSROOT"
|
||||
export MAKEFLAGS="-j${JOBS}"
|
||||
export CCACHE_DIR="${ARCH_BUILD_DIR}/ccache"
|
||||
export CMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold"
|
||||
export CMAKE_MODULE_LINKER_FLAGS="-fuse-ld=mold"
|
||||
export CMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold"
|
||||
|
||||
if [ -d "${ARCH_SYSROOT}/usr/lib64" ]; then
|
||||
export OPENSSL_LIBDIR="${ARCH_SYSROOT}/usr/lib64"
|
||||
elif [ -d "${ARCH_SYSROOT}/usr/lib" ]; then
|
||||
export OPENSSL_LIBDIR="${ARCH_SYSROOT}/usr/lib"
|
||||
else
|
||||
echo "Neither lib nor lib64 found in ${ARCH_SYSROOT}/usr"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cmake -B "${ARCH_BUILD_DIR}" -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
|
||||
@ -126,7 +137,11 @@ function build_arch() {
|
||||
-DCMAKE_C_FLAGS="${CFLAGS}" \
|
||||
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
|
||||
-DCMAKE_FIND_ROOT_PATH="${SYSROOT}" \
|
||||
-DCMAKE_SYSROOT="${SYSROOT}"
|
||||
-DCMAKE_SYSROOT="${SYSROOT}" \
|
||||
-DOPENSSL_ROOT_DIR="${ARCH_SYSROOT}/usr" \
|
||||
-DOPENSSL_LIBRARIES="${OPENSSL_LIBDIR}" \
|
||||
-DOPENSSL_INCLUDE_DIR="${ARCH_SYSROOT}/usr/include" \
|
||||
-DOPENSSL_USE_STATIC_LIBS=ON
|
||||
cd "${ARCH_BUILD_DIR}" || exit 1
|
||||
ninja -k0 -j"${JOBS}"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user