Use Vcpkg manifest mode and add arm64 mac support#29
Conversation
8d4e1d3 to
539d460
Compare
|
Ended up adding mac CI |
853dfd7 to
a1badaa
Compare
b13669f to
d0ada23
Compare
|
Quick update: I'm working on testing it with the CMAKE toolchain way rather than what I was doing. I'm also realizing I can have this include icu + qt, which reduces the need heavily for brew installed packages on the OpenMW side, so I'm seeing if that can work. |
|
Qt is huge and slow to build, and we don't get any particular advantage from having it in a precompiled deps package we maintain when upstream provides a perfectly good precompiled distribution and we're never going to want to patch it. For Windows, we use |
|
Updates:
|
4fa4200 to
6bb0105
Compare
|
This should be ready to review |
|
Navmesh tool error with bullet : Did not happen with latest build from master. |
|
I'd like to get this merged in some capacity so we have manifest mode in place so other platforms can mess with it. I can split out just to do the manifest stuff if preferred to that end. I mean, even if we merge this, we don't need to have Mac use it yet if there are kinks... |
|
There's a decent chance that that error would happen with the existing deps if they were to have assertions enabled, which I assume they don't. I'm not seeing a separate debug and release lib for Bullet in the archive, and I'm pretty sure it defaults to only enabling assertions in debug. Vcpkg, however, will give you both, so if you've built the navmesh tool in the Debug configuration, it'll link with a debug version of Bullet, and you'll see assertions that wouldn't fire before. |
| script: | | ||
| core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | ||
| core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | ||
| - run: brew install autoconf autoconf-archive automake |
There was a problem hiding this comment.
This isn't a review comment, just a note so I'll see it if this line looks weird to me later.
Unlike on Windows, where vcpkg will install its own local isolated versions of tools like these, it explicitly recommends you install these yourself via Homebrew for MacOS.
Hmm. This makes sense. I'll rebuild in release mode and see if the issue persists. If it does NOT persist (i.e. what you said is the case), that would mean we must always build MacOS in release or else things would break that wouldn't before (i.e. introduce functional regression). Or we fix the underlying problem. I don't know quite why we wouldn't build in release for CI builds by default, esp. if they are the ones used in RC. I don't have any opinion on the current situation vs. what it should be, just saying that it would be a change in build procedure (whether it should happen anyway IDK). |
|
We build in |
|
We'll probably want to upstream the |
|
Hence "in a VS context" i.e. I think we shouldn't bother to support two versions of Visual Studio. At least long term. Obviously this isn't particularly relevant until we actually decide to start using C++23. |
|
I am targeting 14.0, seems to be fine. I dropped windows 2019, I can revert if that wasn't the conclusion. |
|
As the last thing to do before this PR is merged, I want to download the deps from the runner and build with it rather than just the local deps. In case CI setup is missing something.... |
|
If we're dropping 2019 support (and we might not have to - I opened microsoft/vcpkg#49654 after isolating the right PR), then the When we were originally setting up this repo, we tested it by just downloading the deps zips that the jobs spat out from the summary page (for some reason they're not available from the individual job pages), putting them in the directory that |
|
Whoops, I can fix that...if we want.
|
|
Can wait and see if Vcpkg maintainers reply with fix. |
|
The plan was always to have dropped MSVC 2019 support by now anyway. The only spanner in the works is that VS 2026 still comes with MSVC 2022, but seeing as how they're going to stop updating the MSVC 2022 that comes with VS 2022, that's really just a branding thing rather than a change to how they do things. We've got a slight extra problem that we can't support VS 2026 until we support CMake 4.2, though, and we're still stuck with 3.31.x until the recast situation is resolved. Historically (i.e. since MSVC 2015 froze the ABI and this became possible), we've transitioned between MSVC versions by first changing PS: the CMake docs say the VS 2026 generator will default to the v145 toolset that VS 2026 is bundled with, but it only goes up to v143 in the VS installer, so that means either Kitware know something we don't or Kitware made a mistake in their docs. |
8f531ac to
3378da1
Compare
|
Works from github generated deps, just had to tell it to trust luajit |
|
seems to work with https://gitlab.com/OpenMW/openmw/-/merge_requests/5136 |
|
This isn't building stuff for AMD64 MacOS, and I'm not sure we've officially decided to drop support for that yet. In principle, it might just be a case of adding an extra triplet to a build matrix and having vcpkg handle all the cross compilation stuff for us (although that precludes forcing the host and target triplets to match - I guess we'd want to put that in the build matrix, too, so it uses a matched triplet for native builds and the default triplet for genuine cross builds). If it doesn't Just Work™, it might be time to have the do we stop supporting Intel macs discussion. |
|
AMD64 can be handled in a separate PR and any weirdness dealt with there if anything comes up. We can still have Intel releases using the old deps so it's not a blocker to handle in two separate waves. |
|
There's not a promote to issue button, so you'll need to manually make issues for things like this not working for Intel-based Macs yet. |
|
I'm not sure how to clear the cache on Github Actions, doesn't seem to show any caches ATM. |
No Mac CI job yet, will raise in subsequent PR.Mac dependencies do build a functioning OpenMW that runs the game.
MacOS specifics taken from https://gitlab.com/OpenMW/openmw-dep
New Notes:
This raises the target to MacOS 15
Also the 7z contains more than just what we'd need—I'm guessing windows is the same way with the raw export. One day we could maybe trim what we store.