mirror of
https://github.com/Nexoniarz/YAPF.git
synced 2026-11-03 04:54:26 +00:00
51 lines
1.7 KiB
Shell
51 lines
1.7 KiB
Shell
#!/bin/bash
|
|
|
|
# ZIG IS REQUIRED TO COMPILE
|
|
# Pikture Build Script - Fast, Small, Easy
|
|
|
|
echo "======================================"
|
|
echo " PIKTURE BUILD CONFIG "
|
|
echo "======================================"
|
|
|
|
EXTRA_FLAGS=""
|
|
|
|
read -p "Enable SIMD acceleration (AVX/NEON)? [y/N]: " USE_SIMD
|
|
if [[ "$USE_SIMD" =~ ^[Yy]$ ]]; then
|
|
EXTRA_FLAGS="$EXTRA_FLAGS -DPIKT_USE_SIMD"
|
|
fi
|
|
|
|
read -p "Enable OpenMP multithreading? [y/N]: " USE_OMP
|
|
if [[ "$USE_OMP" =~ ^[Yy]$ ]]; then
|
|
EXTRA_FLAGS="$EXTRA_FLAGS -DPIKT_USE_THREADS -fopenmp"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building with flags: -O3 -fPIC $EXTRA_FLAGS"
|
|
echo "======================================"
|
|
|
|
mkdir -p dist/windows_x64 dist/windows_arm64 dist/macos_x64 dist/macos_arm64 dist/linux_x64 dist/linux_arm64
|
|
|
|
FLAGS="-O3 -fPIC $EXTRA_FLAGS"
|
|
|
|
# Windows (Shared + Import Lib)
|
|
zig cc -target x86_64-windows $FLAGS -shared pikture.c -o dist/windows_x64/pikture.dll -Wl,--out-implib,dist/windows_x64/pikture.lib
|
|
zig cc -target aarch64-windows $FLAGS -shared pikture.c -o dist/windows_arm64/pikture.dll -Wl,--out-implib,dist/windows_arm64/pikture.lib
|
|
|
|
# macOS (Shared)
|
|
zig cc -target x86_64-macos $FLAGS -shared pikture.c -o dist/macos_x64/libpikture.dylib
|
|
zig cc -target aarch64-macos $FLAGS -shared pikture.c -o dist/macos_arm64/libpikture.dylib
|
|
|
|
# Linux (Shared)
|
|
zig cc -target x86_64-linux-gnu $FLAGS -shared pikture.c -o dist/linux_x64/libpikture.so
|
|
zig cc -target aarch64-linux-gnu $FLAGS -shared pikture.c -o dist/linux_arm64/libpikture.so
|
|
|
|
# Linux (Static)
|
|
zig cc -target x86_64-linux-musl $FLAGS -c pikture.c -o pikture_x64.o
|
|
ar rcs dist/linux_x64/libpikture.a pikture_x64.o
|
|
|
|
zig cc -target aarch64-linux-musl $FLAGS -c pikture.c -o pikture_arm64.o
|
|
ar rcs dist/linux_arm64/libpikture.a pikture_arm64.o
|
|
|
|
rm *.o
|
|
|
|
echo "Build complete."
|