Skip to content

Conversation

Phatcat
Copy link
Owner

@Phatcat Phatcat commented May 14, 2025

Platform Build
(Release)
Build
(Debug)
Unit Tests
(Release)
Unit Tests
(Debug)
Windows
x64
Passing ✅ Passing ✅ Passing ✅ Failing
- MPQ extraction
Windows
ARM64
Passing ✅ Passing ✅ Passing ✅ Failing
- MPQ extraction
macOS
Apple Silicon
Passing ✅ Passing ✅ Passing ✅ Passing ✅
Linux
Ubuntu x64
Passing ✅ Passing ✅ Passing ✅ Passing ✅
Linux
Ubuntu ARM64
Passing ✅ Passing ✅ Passing ✅ Passing ✅
Docker
Linux x64
Passing ✅ Passing ✅ Passing ✅ Passing ✅
Docker
Linux ARM64
Passing ✅ Passing ✅ Passing ✅ Passing ✅

Phatcat added 10 commits May 13, 2025 01:28
Removal of FindBotan and using supplied config

target_link_libraries:
srp6 need botan and doesn't have it linked
libs/shared need to be linked to botan as well
Complete Botan-3 migration targeting:

Migrate from marked as deprecated functions
 -1363 padding needs to be done manually now
 -No serialization directly on the hasher
 -no declaration of functions with a serialization.
Patch the botan config file for libbotan-3-dev. It is expecting the header files in a wrong location
Same goes for the library files, it is not considering multi architecture.
Get rid of FindMySQL and use provided config-file.

Update code to reflect correct include structure

libmysqlcppconn-dev is a hacky uncomplete unbuntu library with custom file staging that's incompatible with modern setups (include/jdbc) so grab official binaries instead and install directly into cmake.

Requires linking with mysql-client where mysql connector is used.
Getting this error on ubuntu-arm buildrunner:
```
70.52 /usr/src/ember/src/libs/shared/shared/threading/Spinlock.h: In member function 'void ember::Spinlock::lock()':
70.52 /usr/src/ember/src/libs/shared/shared/threading/Spinlock.h:20:27: error: '__yield' was not declared in this scope
70.52    20 | #define YIELD_INSTRUCTION __yield()
70.52       |                           ^~~~~~~
70.52 /usr/src/ember/src/libs/shared/shared/threading/Spinlock.h:54:33: note: in expansion of macro 'YIELD_INSTRUCTION'
70.52    54 |                                 YIELD_INSTRUCTION;
70.52       |
```
Implement missing handling of toUpper on char32_t on libcpp+
… rpcgen

Make a post-generation target and make the modules depend upon that instead as that will force msvc to ensure the headers are actually generated before they're needed.
Windows should now successfully build the first time.

Also pulled out the schema headers from where they are actually not needed, only 2 modules depend upon them; rpcgen and spark.
Hitting all 3 target platforms with debug builds targeting both x64 and arm64, just like the upcoming manual build guide.

- The windows build follows a conan approach and only needs the binaries/source from mysql connector cpp.
- macOS uses a homebrew approach and only needs to get the binaries from mysql connector cpp.
Add a simple check in the top level cmakefile and add homebrew libraries if we're on apple so the buildbot and people can use natively installed libraries.
- Linux uses a mix between apt and homebrew
- The linux docker already tests a native dependency path, and most packages can be got from apt-get with the exception of a proper mysql, but that takes but a second to download and install.

Cached vary greatly in size from 300 mb (linux with homebrew) to about 700 mb (macOS with homebrew)
@Phatcat Phatcat force-pushed the cache_test_new branch 6 times, most recently from 48ee983 to a862c73 Compare May 14, 2025 14:23
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.

1 participant