Skip to content

Conversation

@crueter
Copy link
Contributor

@crueter crueter commented Dec 24, 2025

Extremely WIP, thunks and tests are untested since I don't have an aarch64 development environment on me at the time. Will document this later.

Main TODOs:

  • copy other modules over to CPM
  • thunks wtf
  • test
  • robin map????????

Signed-off-by: crueter [email protected]

@crueter crueter marked this pull request as draft December 24, 2025 23:29
Extremely WIP, thunks and tests are untested since I don't have an aarch64 development environment on me at the time. Will document this later.

Signed-off-by: crueter <[email protected]>
@Sonicadvance1
Copy link
Member

I'm not sure how I feel about this one yet.

@crueter
Copy link
Contributor Author

crueter commented Dec 25, 2025

I'll document more thoroughly when I actually finish it, but the gist is

  • submodules are annoying (I have already been bitten by forgetting to git submodule update multiple times), whereas with this each commit sha/tag is its own cache entry in .cache/cpm/<packagename>. This also has the benefit of every build being 100% reproducible
  • this uses source archives instead of full Git trees, which is net faster as it doesn't need to include the .git directory for each

shallow = true
path = External/robin-map
url = https://github.com/FEX-Emu/robin-map.git
url = https://github.com/crueter/robin-map.git
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tbh, it'd be nice if we could track the main repo for robin-map, especially since it seems that we're 2 minor versions behind now (i.e. 1.2.1, but 1.4.1 is out, which does seem to have some performance improvements, though small, and also unbreaks systems using CMake 4.0+)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have one patch on top of upstream so we can't track upstream. FEX-Emu/robin-map@d5683d9

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, bleh. I guess in that case it would be good to reapply on top of the latest release then (if possible), so we don't have an eventual build break

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest I wish we could just use something like unordered_dense instead

In CPM land, applying patches is as simple as creating a patch and applying it with the PATCHES option. That's another benefit of using it over submodules.

@crueter
Copy link
Contributor Author

crueter commented Dec 28, 2025

This needs a lot more time to bake, so I'm closing it for now and keeping it as a future reference. Self-notes:

  • A separate PR should be made for preferring system dependencies if available. This makes the CPM porting work easier and reduces this PR's size--this depends on [externals] use ankerl::unordered_dense over tsl #5162 to avoid the robin-map patching thing.
  • MERGE CONFLICTS
  • Will probably want each CPM dependency to have an option like <name>_DIR where users can prefetch the dependency and use it in the same way you can submodules (see https://gpo.zugaina.org/app-emulation/FEX)
  • Patches... ideally, none are used, but you can't win it all I guess. Could go with the same CPMUtil route of .patch/<packagename>/0000-patchname.patch perhaps.

@crueter crueter closed this Dec 28, 2025
crueter added a commit to crueter/FEX that referenced this pull request Dec 28, 2025
Port of FEX-Emu#5159

Find modules are preferred for pkgconfig/otherwise non-CMake libraries.
Let's use that here for xxHash.

Signed-off-by: crueter <[email protected]>
crueter added a commit to crueter/FEX that referenced this pull request Dec 28, 2025
Port of FEX-Emu#5159

Find modules are preferred for pkgconfig/otherwise non-CMake libraries.
Let's use that here for xxHash.

Signed-off-by: crueter <[email protected]>
crueter added a commit to crueter/FEX that referenced this pull request Dec 28, 2025
Port of FEX-Emu#5159

Find modules are preferred for pkgconfig/otherwise non-CMake libraries.
Let's use that here for xxHash.

Signed-off-by: crueter <[email protected]>
crueter added a commit to crueter/FEX that referenced this pull request Dec 28, 2025
Port of FEX-Emu#5159

Find modules are preferred for pkgconfig/otherwise non-CMake libraries.
Let's use that here for xxHash.

Signed-off-by: crueter <[email protected]>
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.

3 participants