mirror of
https://github.com/Toastconcern/FrameStudio.git
synced 2026-10-29 04:02:56 +01:00
Frame Studio now builds for Windows (x64, x86, ARM64), Linux (x64, x86, ARM64)
and macOS (Apple Silicon, Intel):
- studio/platform.h with Win32 and POSIX implementations (dialogs through
tinyfiledialogs on Linux/macOS), a GLFW window beside the Win32 one, and a
platform-neutral frame pacer
- MoltenVK support in the renderer (portability enumeration) and bundled in
the macOS app
- 32-bit builds: large-address-aware, LZMA packing within a 32-bit address space
- unaligned file reads in the loaders go through loadUnaligned (no UB)
- scripts/build-studio.sh, studio/build_windows.bat [x64|x86|arm64],
cmake/llvm-mingw.cmake, and a GitHub Actions workflow building every target
Frame Home installs without Studio: frame/install-frame-home.{sh,ps1} and
"Install Frame Home.bat" (packaged as FrameHome-installer.zip).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
3.0 KiB
Bash
58 lines
3.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Extract our command line arguments
|
|
COMPILER=$1
|
|
|
|
# Convert our GCC compiler into a list of packages it needs
|
|
if [[ $COMPILER == gcc5 ]]; then
|
|
PACKAGES="g++-5 g++-5-multilib g++-multilib"
|
|
elif [[ $COMPILER == gcc6 ]]; then
|
|
PACKAGES="g++-6 g++-6-multilib g++-multilib"
|
|
elif [[ $COMPILER == gcc7 ]]; then
|
|
PACKAGES="g++-7 g++-7-multilib g++-multilib"
|
|
elif [[ $COMPILER == gcc8 ]]; then
|
|
PACKAGES="g++-8 g++-8-multilib g++-multilib"
|
|
elif [[ $COMPILER == gcc9 ]]; then
|
|
PACKAGES="g++-9 g++-9-multilib g++-multilib"
|
|
elif [[ $COMPILER == gcc10 ]]; then
|
|
PACKAGES="g++-10 g++-10-multilib g++-multilib"
|
|
fi
|
|
|
|
# If using clang, add our apt source key
|
|
if [[ $COMPILER == clang* ]]; then
|
|
curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add - ;
|
|
fi
|
|
|
|
# Convert our clang compiler into a list of packages it needs and its source
|
|
if [[ $COMPILER == clang4 ]]; then
|
|
# clang4 isn't available after xenial
|
|
PACKAGES="clang-4.0 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang5 ]]; then
|
|
PACKAGES="clang-5.0 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-5.0 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang6 ]]; then
|
|
PACKAGES="clang-6.0 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-6.0 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang7 ]]; then
|
|
PACKAGES="clang-7 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang8 ]]; then
|
|
PACKAGES="clang-8 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang9 ]]; then
|
|
PACKAGES="clang-9 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang10 ]]; then
|
|
PACKAGES="clang-10 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
elif [[ $COMPILER == clang11 ]]; then
|
|
PACKAGES="clang-11 libstdc++-5-dev libc6-dev-i386 g++-5-multilib g++-multilib"
|
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" | sudo tee -a /etc/apt/sources.list > /dev/null ;
|
|
fi
|
|
|
|
# Install the packages we need
|
|
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test";
|
|
sudo -E apt-get -yq update;
|
|
sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install $PACKAGES;
|