mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
Added scripts building: - FreeType for macOS/iOS/Android targets. - Draco for macOS/Linux/Android/wasm targets. - liblzma for macOS/Android targets. - Tcl for Android/wasm targets.
61 lines
2.6 KiB
Bash
61 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
# This is helpful script to perform building of Tcl for Android platform
|
|
# https://www.tcl.tk/software/tcltk/download.html
|
|
|
|
#$HOME/develop/android-ndk-r12b/build/tools/make-standalone-toolchain.sh --platform=android-15 --install-dir=$HOME/develop/android15-armv7a --ndk-dir=$HOME/develop/android-ndk-r12b --toolchain=arm-linux-androideabi-4.9
|
|
#$HOME/develop/android-ndk-r12b/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=$HOME/develop/android21-aarch64 --ndk-dir=$HOME/develop/android-ndk-r12b --toolchain=aarch64-linux-android-4.9
|
|
#$HOME/develop/android-ndk-r12b/build/tools/make-standalone-toolchain.sh --platform=android-15 --install-dir=$HOME/develop/android15-x86 --ndk-dir=$HOME/develop/android-ndk-r12b --toolchain=x86-4.9
|
|
ANDROID_ROOT="/home/develop/android"
|
|
|
|
# go to the script directory
|
|
aScriptPath=${BASH_SOURCE%/*}
|
|
if [ -d "$aScriptPath" ]; then
|
|
cd "$aScriptPath"
|
|
fi
|
|
|
|
# define number of jobs from available CPU cores
|
|
aNbJobs="$(getconf _NPROCESSORS_ONLN)"
|
|
set -o pipefail
|
|
|
|
aPathBak="$PATH"
|
|
aTclRoot="$PWD"
|
|
|
|
OUTPUT_FOLDER="$aTclRoot/install/tcl-android"
|
|
rm -f -r "$OUTPUT_FOLDER"
|
|
mkdir -p "$OUTPUT_FOLDER"
|
|
cp -f "$aTclRoot/license.terms" "$OUTPUT_FOLDER"
|
|
cp -f "$aTclRoot/README.md" "$OUTPUT_FOLDER"
|
|
echo "Output directory: $OUTPUT_FOLDER"
|
|
|
|
set -o pipefail
|
|
|
|
function buildArch {
|
|
anAbi=$1
|
|
anArch=$2
|
|
aToolPath=$3
|
|
aCFlags=$4
|
|
export "PATH=$ANDROID_ROOT/$aToolPath/bin:$aPathBak"
|
|
export "CC=$anArch-gcc"
|
|
export "AR=$anArch-ar"
|
|
export "RANLIB=$anArch-ranlib"
|
|
export "CFLAGS=$aCFlags"
|
|
pushd "$aTclRoot/unix"
|
|
./configure --build x86_64-linux --host $anArch --prefix=${OUTPUT_FOLDER} --libdir=${OUTPUT_FOLDER}/libs/$anAbi --bindir=${OUTPUT_FOLDER}/bins/$anAbi 2>&1 | tee $OUTPUT_FOLDER/config-$anAbi.log
|
|
aResult=$?; if [[ $aResult != 0 ]]; then echo "FAILED configure $anAbi"; exit $aResult; fi
|
|
make clean
|
|
make -j$aNbJobs
|
|
aResult=$?; if [[ $aResult != 0 ]]; then echo "FAILED make $anAbi"; exit $aResult; fi
|
|
make install
|
|
popd
|
|
export "PATH=$aPathBak"
|
|
}
|
|
|
|
buildArch "arm64-v8a" "aarch64-linux-android" "android21-aarch64" "-O2 -march=armv8-a"
|
|
buildArch "armeabi-v7a" "arm-linux-androideabi" "android15-armv7a" "-O2 -march=armv7-a -mfloat-abi=softfp"
|
|
buildArch "x86" "i686-linux-android" "android15-x86" "-O2 -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
|
|
buildArch "x86_64" "x86_64-linux-android" "android21-x86_64" "-O2 -march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel"
|
|
|
|
rm $OUTPUT_FOLDER/../tcl-android.7z &>/dev/null
|
|
7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $OUTPUT_FOLDER/../tcl-android.7z $OUTPUT_FOLDER
|