Skip to content

Refactor compilation stack#8

Merged
PJB3005 merged 10 commits intomasterfrom
refactor
Aug 18, 2025
Merged

Refactor compilation stack#8
PJB3005 merged 10 commits intomasterfrom
refactor

Conversation

@PJB3005
Copy link
Member

@PJB3005 PJB3005 commented Aug 18, 2025

To merge #6 into master

Fixes space-wizards/RobustToolbox#4997

BarryNorfolk and others added 10 commits August 18, 2025 15:56
…ve code (#6)

* Ignore Pycache and generated artifacts

* Add some common handling for building software

* Add all known software for native-builds

* Add scripts for building on each major platform

* Update workflow file

* Set SDL to cross build a fat binary

* Delete old scripts for building natives

* Add a short readme

* Use older ubuntu version for linux builds

* Add specific Platform enum

* Build OSX binaries as x64 only

* Strip debug information out of linux files and place them into .debug ones

* Re-add docker file for linux and use it during builds

* Build fluidsynth on Windows

* Add fluidsynth build setup for windows

* Add vcpkg install step to windows

* Add python setup to docker file

* Set default triplets for vcpkg

* Checkout vcpkg to 2025.02.14

* Ensure git ownership isn't a problem for docker runs

* Ensure we properly get the git information from the root dir at the end

* Set glib version to 2.80.0

* Set default installed dir

* Ensure we're using the release triplet here

* Ensure we're running and compiling for x64

* Fix shebangs

* Fix newlines

* Update all the submodules

* insert_final_newline in editorconfig

* Fix vcpkg configuration

* Update build scripts to improve macOS support, update SDL to SDL3

* Enable type checking for Python

* More refactoring to allow specifying RID to compile

* Disable unecessary SDL subsystems

* Don't build Freetype on Linux

* Fix Windows Fluidsynth build

* Disable more fluidsynth compiles features

Can't hurt

* Fix fluidsynth on macOS, statically linked

* Disable CoreAudio in FluidSynth build

* Add command line arg to filter which software to build

* Fix the Windows builds again

So good at this

* Fix software param parsing

* Move Fluidsynth to being built entirely by vcpkg

Did this because cross-compilation is otherwise annoying as hell to implement. vcpkg does it all for us, no need to reinvent the wheel.

* Fix macOS FluidSynth builds again

yip

* The Linux builds do appear to work

Need an overlay port for Fluidsynth so that I can disable the vcpkg ports of glib/alsa, as we should use system libraries instead.

* Move Freetype to ABI-modified version

* Add ANGLE to vcpkg dependencies

* Package ANGLE for Windows

* Fix output library names

* Infer RIDs on build

* Fix type errors in vcpkg.py

* Work around Python not reporting x86_64 architecture properly

* Split Linux into separate server and client builds

We want to build zstd against an old glibc version compatible with RHEL 8, but the client binaries can all be built against something more modern instead.

I decided to build the client libs against Steam Linux Runtime 3 (Sniper) since it's what we can run on Steam builds, and has all the modern libs (e.g. libpipewire-0.3, libdecor) we need. Ubuntu 22.04 is too modern, Ubuntu 20.04 is too old.

* Update README

---------

Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
So that I don't go insane organizing these
@PJB3005 PJB3005 merged commit f782e3e into master Aug 18, 2025
6 checks passed
@PJB3005 PJB3005 deleted the refactor branch August 18, 2025 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor native library compilation stack

2 participants