Skip to content

Conversation

@Phatcat
Copy link
Owner

@Phatcat Phatcat commented May 14, 2025

No description provided.

Phatcat added 9 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 all_source_baby branch 21 times, most recently from 22e22ea to 240ad54 Compare May 15, 2025 19:46
@Phatcat Phatcat force-pushed the all_source_baby branch 18 times, most recently from 007da81 to 627bc1f Compare May 16, 2025 01:28
@Phatcat Phatcat force-pushed the all_source_baby branch from 627bc1f to ba5c58b Compare May 16, 2025 01:43
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.

2 participants