-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Big building rework #448
Big building rework #448
Conversation
a59b521
to
25bd4e1
Compare
9fe2395
to
5f38acc
Compare
Ok, review time.
Slash that for now.
@verybadsoldier please comment why MXE was used in the first place instead of mingw package. I don't quite remember.
Is DevIL not supplied by Conan on Windows?
Yeah maybe. Does Linux guarantee to look for dynamic libs in the current directory? I was under impression it's not.
Good change, although originally we used Ninja for building and had to fall back to make since Ninja was failing sometimes (details are lost in time)
Does it also work fine with mingw build?
Very good ones. Thanks! @verybadsoldier you have bandwidth please have a look as well. |
It's not supplied by Conan at all. So on Linux it's fetched from Ubuntu repos and on Windows I've put binaries in a folder.
That seems like a minor tradeoff for not having to compile everything manually.
You can look at conan.io or from command line. There are lots of binaries but they seem to have the same build options and only differ in compiler versions/settings, but I'm not sure.
There are binaries built with /MT, so this should be ok.
Directory can be set at compile time. I set it to (engine dir)/lib for now.
mold doesn't support Windows yet, so no. |
IIRC the reason for MXE was the ability to freely choose gcc version instead of being tied to one provided by Ubuntu. |
That is a speculation. I don't know what formats are supported in conan build, you don't seem to know either.
So it's built with MSVC runtime? In theory it should be fine with -MT. Yet. |
DevIL has all formats enabled by default. I don't know how to test it, but I don't see anything in Ubuntu builds that would disable any, and I don't think Windows builds may have anything disabled either.
There are no mingw prebuilts actually.
I'll do this sometime later. There are still some small fixes needed. |
Sounds like a plan. If conan builds don't show any flaws, we will move to using them. |
7d55cea
to
075e577
Compare
5f38acc
to
7c1ece8
Compare
Update to ubuntu:22.10 Bundle libc.so and some of its dependencies with the build Remove MXE, use mingw from Ubuntu instead Remove spring-static-libs and mingwlibs64, use Conan and Ubuntu repos instead Don't link Linux statically, bundle libraries with the build Use Ninja for building Use mold for linking Clean up some CMake warnings Rework caching on GitHub Run legacy, headless and dedicated builds in parallel on GitHub
7c1ece8
to
dce74cd
Compare
@Karolson Do you have any plan on getting this merged? Sorry for bugging you out, it's the sanest way I have of compiling reproducible engine but if there's not timeframe I'll just drop back to whatever is being done at It would also help a lot into getting other things done I plan to (like rmlui and controllers) since I feel having to maintain |
Sorry, no time frame, probably a few months until I look at it again. Afaik debug builds work on |
3925acd
to
d32df95
Compare
41c6b2b
to
1c21706
Compare
Looks like a lot of things changed underneath, there's multiple merge conflicts. Should this stay open? |
I think it's good for it to stay open for whoever might want to pick up build rework. Maybe I would only make it a draft PR. |
This is a big rework and splitting it into different commits would've been rather annoying, sorry if it's hard to review
Major changes:
spring
is replaced with a shell script which first checks whether to preload the system glibc, and then launchesspring-legacy
Obviously needs a ton of testing so a draft for now
Tested on Arch Linux, Wine, Ubuntu 18.04 VM, Windows 10 VM
GitHub builds don't quite work right now, I'll work on that