Replace premake5 build system with CMake for Linux#449
Replace premake5 build system with CMake for Linux#449paralin wants to merge 1 commit intoDetanup01:devfrom
Conversation
Add CMakeLists.txt and supporting build scripts for building goldberg on Linux using CMake instead of premake5. Uses system packages for all dependencies (protobuf, zlib, curl, mbedtls, opus, portaudio, abseil). Includes cross-compilation toolchain for 32-bit builds and prefers mbedtls-3 pkg-config names for Gentoo slotted installs. Signed-off-by: Christian Stewart <christian@aperture.us>
bcc8ca7 to
d779757
Compare
|
This is nice and good but then what the fuck do i do if i build it on windows? Bonus but that's just my opinion: replacing one build system with another... do you want to change that whenever something new goes or something gets completely reworked/deleted? I hate every single c build system because it's just not got at all |
|
You're right about windows, cmake should work there actually, but the dependencies are another question. I'm not a windows user at all so that didn't really occur to me before. Technically we could add all the submodules for dependencies and use cmake to build them all on windows along with the emulator. This pr replaced the other make system entirely. I mean, you would be able to ping me to look at fixing things when they change if you want. But from the general tone of your message I feel like this isn't in your appetite so I'll close for now - lmk if otherwise. Thanks for this fork. |
Hi, this is a draft PR because it's quite a massive change, but I found the premake5 and massive binary blob vendored submodules to be a bit unweildy and went and reworked this around the standard cmake + system deps approach. Please feel free to reject this PR if you don't want this level of churn, but in the interest of making it available to you in case you find it useful, here you go:
CMake build uses standard find_package and pkg_check_modules to locate system-installed dependencies, eliminating the need for vendored tarballs and the bundled 7za extractor. mbedtls detection tries both unversioned and -3 suffixed pkg-config names for compatibility across distros.