docker-cross-compiler/sh/build_native.sh

60 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# $1 Source path of the project.
# $2 Target architecture list.
# DST is the destination directory.
# NOINSTALL = 1 to skip installing.
SRC=$1
ARCHS=$2
if [ -z "$SRC" ]
then
echo You need to provide a source path.
return
fi
if [ -z "$ARCHS" ]
then
ARCHS="linux-arm linux-arm64 linux-x64 win-x64 win-x86 osx-arm64 osx-x64"
fi
if [ -z "$DST" ]
then
DST=$PWD
fi
if [ -z "$CMAKE_DIR"]
then
CMAKE_DIR="$SRC/docker-cross-compiler/cmake"
fi
for ARCH in $ARCHS; do
# Output directory.
PREFIX=$DST/runtimes/$ARCH/native
# Build directory.
BUILD=$DST/out/$ARCH
# Cmake toolchain file.
TOOLCHAIN=$CMAKE_DIR/$ARCH.cmake
# Create directories.
mkdir -p $PREFIX $BUILD
# Configure CMAKE.
cmake -B $BUILD -S $SRC \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS=-static-libgcc \
-DCMAKE_CXX_FLAGS=-static-libgcc \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN \
$QUIK_ADDITIONAL_CMAKE
# Build and install.
ninja -C $BUILD all
if [ ! $NOINSTALL ]
then
ninja -C $BUILD install
fi
done