mirror of
https://github.com/Toastconcern/FrameStudio.git
synced 2026-10-28 18:08:33 +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>
33 lines
1.4 KiB
CMake
33 lines
1.4 KiB
CMake
# Cross-building Frame Studio for Windows from Linux with llvm-mingw (https://github.com/mstorsjo/llvm-mingw):
|
|
# cmake -S studio -B build/windows-arm64 -DCMAKE_TOOLCHAIN_FILE=cmake/llvm-mingw.cmake -DWINDOWS_ARCH=aarch64 \
|
|
# -DLLVM_MINGW=/path/to/llvm-mingw
|
|
# WINDOWS_ARCH: x86_64 (64-bit PCs), i686 (32-bit), aarch64 (Windows on ARM). LLVM_MINGW defaults to $LLVM_MINGW,
|
|
# then ~/.local/opt/llvm-mingw.
|
|
set(CMAKE_SYSTEM_NAME Windows)
|
|
if(NOT WINDOWS_ARCH)
|
|
set(WINDOWS_ARCH x86_64)
|
|
endif()
|
|
set(WINDOWS_ARCH "${WINDOWS_ARCH}" CACHE STRING "x86_64, i686 or aarch64")
|
|
if(WINDOWS_ARCH STREQUAL "aarch64")
|
|
set(CMAKE_SYSTEM_PROCESSOR ARM64)
|
|
elseif(WINDOWS_ARCH STREQUAL "i686")
|
|
set(CMAKE_SYSTEM_PROCESSOR X86)
|
|
else()
|
|
set(CMAKE_SYSTEM_PROCESSOR AMD64)
|
|
endif()
|
|
if(NOT LLVM_MINGW)
|
|
if(DEFINED ENV{LLVM_MINGW})
|
|
set(LLVM_MINGW "$ENV{LLVM_MINGW}")
|
|
else()
|
|
set(LLVM_MINGW "$ENV{HOME}/.local/opt/llvm-mingw")
|
|
endif()
|
|
endif()
|
|
set(LLVM_MINGW "${LLVM_MINGW}" CACHE PATH "llvm-mingw's folder")
|
|
set(CMAKE_C_COMPILER "${LLVM_MINGW}/bin/${WINDOWS_ARCH}-w64-mingw32-clang")
|
|
set(CMAKE_CXX_COMPILER "${LLVM_MINGW}/bin/${WINDOWS_ARCH}-w64-mingw32-clang++")
|
|
set(CMAKE_RC_COMPILER "${LLVM_MINGW}/bin/${WINDOWS_ARCH}-w64-mingw32-windres")
|
|
set(CMAKE_FIND_ROOT_PATH "${LLVM_MINGW}/${WINDOWS_ARCH}-w64-mingw32")
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|