-
Notifications
You must be signed in to change notification settings - Fork 63
external_deps: revamp lib build, add cmake and configure wrapper, update lib feature disablement, update lib versions #1433
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
base: master
Are you sure you want to change the base?
Conversation
For
Everything else build. |
For
Everything else build. |
cc59996
to
bd1e318
Compare
|
When building newer Opus on Debian buster (the distro we use for our releases), I get this:
Debian Buster provides GCC 8, but GCC 11.3 or GCC 12 may be required: |
Telling Opus to not assume more than SSE2 fixed that. |
So, the MinGW GLEW and MSVC Vorbis errors are the only ones. |
So the Vorbis build error is actually a bug:
I added a workaround. |
I don't get why I get that GLEW build error with MinGW, the build function has not been modified, and the version has not been updated. |
Also the code is the same for both |
So, I don't know what happened, now I don't reproduce the MinGW GLEW error… Maybe I gorgot to prune the prefix folder and some stray files messed-up… |
Ah, I now see something: I reproduce the bug with MinGW from Ubuntu 24.04 Noble, not with MinGW from Debian 10 Buster. So, since we produce release builds with Debian Buster, it's not a big problem, but it should be fixed for the future… |
What's the purpose of migrating things to build with CMake? |
03961c7
to
c537fe9
Compare
So with this a static build for linux-amd64 completes and runs. |
Huh? It worked before, so I have a hard time believing that is suddenly necessary to change the build system of 8 packages. |
I never said this is a response to “What's the purpose of migrating things to build with CMake?”, I'm just reporting the status of me testing that branch. I said in first post:
So now I'm running those tests. |
What's the motivation behind this change? |
Purposes:
When using configure it is hard to compare the list of already used options with the new options, one has to read configure's whole output and compare with what's currently used. On the contrary with cmake, one just runs the existing command, then go to the build dir and run ccmake, and see what's enabled and should not, and report the difference to the build script. |
ac1c6e1
to
5653846
Compare
5860e20
to
c73312c
Compare
windows-amd64-mingw and windows-i686-mingw engine both build and run. |
@@ -8,7 +8,7 @@ set( CMAKE_CXX_COMPILER i686-w64-mingw32-g++ ) | |||
set( CMAKE_RC_COMPILER i686-w64-mingw32-windres ) | |||
|
|||
# Target prefix | |||
set( CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 ) | |||
set( CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32;${CMAKE_PREFIX_PATH} ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Surely this doesn't do anything, as the toolchain file is executed before CMakeLists.txt, so CMAKE_PREFIX_PATH wouldn't be set (unless you set it on the command line.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh it's for building external_deps, not compiling the game. Could use a comment
case "${PLATFORM}" in | ||
windows-*-*) | ||
# CMake looks for libSDL2.a and aborts if missing if this file exists: | ||
rm -rf "${PKG_PREFIX}/lib/cmake/SDL2/SDL2staticTargets.cmake" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's this? I don't see a file like this anywhere, and if I revert this commit it does not appear.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For me, this file came up and sabotaged the build not for Windows, but for Linux targets by injecting a -lsamplerate
flag. Anyway on the slipher/deps-combined
branch I reverted that commit and did a proper fix by configuring the SDL build not to use the dependency.
-DCURL_USE_MBEDTLS=OFF \ | ||
-DCURL_USE_NSS=OFF \ | ||
-DCURL_USE_OPENSSL=OFF \ | ||
-DCURL_USE_WOLFSSL=ON \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why on?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Confusion with USE
/DISABLE
, should be OFF
.
The zlib build is not usable for MSVC because it produces a |
For MSVC platforms, the resulting JPEG, WebP, and Curl DLLs have a |
Note to myself: There may be some absolute path to rewrite in some installed |
I know about the absolute path issue and fixed all cases in the |
Rebased |
Thanks |
21d2e2b
to
612a195
Compare
6b6439a
to
d72b466
Compare
9c6042a
to
4fd2627
Compare
4fd2627
to
47ecb1d
Compare
|
||
base_linux_armhf_default_packages="${base_linux_arm64_default_packages}" | ||
release_linux_armhf_default_packages="${release_linux_arm64_default_packages}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@slipher the release
is here.
Responding to:
What's the status of this, is it ready for the next round of review yet? |
This is WIP, current external_deps build status:
I haven't tested if the engine builds and runs properly with those.WIPWhat this PR does:
CMakeLists.txt
file