The pieces were nearly all in place already - CMakeLists has detected
riscv64 and set RISCV64 since the backend landed - so this is mostly a
matter of not hardcoding loongarch64 in the cross-build plumbing:
- setup-loongarch64-cross.sh becomes setup-cross.sh <target>, taking the
triple and dynamic linker name from the argument.
- b.sh gains --riscv64, and the GL stub block is keyed off a compiler
variable rather than a loongarch64-only flag.
- New cmake/Toolchains/riscv64-linux-gnu.cmake, mirroring the existing one.
The SDL carve-out moves from LOONGARCH64_DEVICE to a new HEADLESS_CROSS
option set by b.sh. That flag was keyed off the target architecture, which
is also true when building natively on such a machine - harmless so far,
but riscv64 hardware that people actually build PPSSPP on exists, and it
should still get the normal SDL frontend.
Both toolchain files now find qemu rather than assuming the static build:
Debian ships the static binaries in qemu-user-static and the dynamic ones
in qemu-user, and only the latter is available on some releases. Neither
being present is fine too - it just means no compile-check programs run.
Verified by a clean loongarch64 build; riscv64 is untested so far, the
toolchain isn't installed here yet.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
The GL stub generation in b.sh and setup-loongarch64-cross.sh harvested
symbols from hardcoded /usr/lib/x86_64-linux-gnu paths. On any other host
those simply don't exist, and neither script treats that as an error - so
the stub silently fell back to the handful of GLX symbols listed inline,
which isn't enough for GLEW's static archive to link against.
Ask the host compiler for its multiarch triplet instead.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Our Qt backend has long been left behind and doesn't even support Vulkan
currently. There would be a lot of work to make it viable, and I don't
think anyone is really interested.
ImGui on SDL will soon fulfill the need for a more classic user interface
with a menu bar on Linux, and on Mac we already have a native UI.
Unfortunately the ub (undefined behavior) sanitizer has some bugs, it doesn't
understand pointers to member functions, so can't use it in-game (due to the
vertex decoder).
Thanks Nemoumbra for the reminder.
Also enables stencil for the iOS backbuffer. Fixes the GPU test and will doubtlessly
fix problems with running non-buffered (which you shouldn't do anyway though).
Slim alternative to #13766 with less risk to buildbots.
Add a 'no_assets' option to Qt that allows building without pre-compiled assets inside the binary.
GCC has issues with high memory usage when compiling the assets file, so this is used as a workaround for Travis.
Should help distros packaging ppsspp. Note: if you currently use PPSSPPQt, you will need to move the config dir from PPSSPPQt to ppsspp.
For distro packagers, you can now use PREFIX and DESTDIR for installs.
Stops builds from showing success when there was an error.
Had to workaround grep's issue of returning '1' when there is no matches. There is unfortunately no alternative.
Removed bin/bash header as it could restrict alternative shells.
Used set -e to break script whenever a non-zero return is encountered.
CMake was returning non-zero on CMAKE_TOOLCHAIN_FILE not being required. Now check for that in CMake instead of platform/abi. If the abi is missing and toolchain is not, that would have been the wrong advice anyway.