Files
ToastconcernandClaude Opus 5.5 f7345a5ac3 Frame Studio and Frame Home: cross-platform builds
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>
2026-10-21 12:03:25 -05:00

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;