diff options
| author | Stefan Boberg <[email protected]> | 2025-11-07 14:49:13 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-11-07 14:49:13 +0100 |
| commit | 24e43a913f29ac3b314354e8ce5175f135bcc64f (patch) | |
| tree | ca442937ceeb63461012b33a4576e9835099f106 /thirdparty/blake3/tools | |
| parent | get oplog attachments (#622) (diff) | |
| download | zen-24e43a913f29ac3b314354e8ce5175f135bcc64f.tar.xz zen-24e43a913f29ac3b314354e8ce5175f135bcc64f.zip | |
switch to xmake for package management (#611)
This change removes our dependency on vcpkg for package management, in favour of bringing some code in-tree in the `thirdparty` folder as well as using the xmake build-in package management feature. For the latter, all the package definitions are maintained in the zen repo itself, in the `repo` folder.
It should now also be easier to build the project as it will no longer depend on having the right version of vcpkg installed, which has been a common problem for new people coming in to the codebase. Now you should only need xmake to build.
* Bumps xmake requirement on github runners to 2.9.9 to resolve an issue where xmake on Windows invokes cmake with `v144` toolchain which does not exist
* BLAKE3 is now in-tree at `thirdparty/blake3`
* cpr is now in-tree at `thirdparty/cpr`
* cxxopts is now in-tree at `thirdparty/cxxopts`
* fmt is now in-tree at `thirdparty/fmt`
* robin-map is now in-tree at `thirdparty/robin-map`
* ryml is now in-tree at `thirdparty/ryml`
* sol2 is now in-tree at `thirdparty/sol2`
* spdlog is now in-tree at `thirdparty/spdlog`
* utfcpp is now in-tree at `thirdparty/utfcpp`
* xmake package repo definitions is in `repo`
* implemented support for sanitizers. ASAN is supported on windows, TSAN, UBSAN, MSAN etc are supported on Linux/MacOS though I have not yet tested it extensively on MacOS
* the zencore encryption implementation also now supports using mbedTLS which is used on MacOS, though for now we still use openssl on Linux
* crashpad
* bumps libcurl to 8.11.0 (from 8.8.0) which should address a rare build upload bug
Diffstat (limited to 'thirdparty/blake3/tools')
6 files changed, 72 insertions, 0 deletions
diff --git a/thirdparty/blake3/tools/compiler_version/Cargo.toml b/thirdparty/blake3/tools/compiler_version/Cargo.toml new file mode 100644 index 000000000..862509406 --- /dev/null +++ b/thirdparty/blake3/tools/compiler_version/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "compiler_version" +version = "0.0.0" +edition = "2021" + +[build-dependencies] +cc = "1.0.50" diff --git a/thirdparty/blake3/tools/compiler_version/build.rs b/thirdparty/blake3/tools/compiler_version/build.rs new file mode 100644 index 000000000..3e14ebe67 --- /dev/null +++ b/thirdparty/blake3/tools/compiler_version/build.rs @@ -0,0 +1,6 @@ +fn main() { + let build = cc::Build::new(); + let compiler = build.get_compiler(); + let compiler_path = compiler.path().to_string_lossy(); + println!("cargo:rustc-env=COMPILER_PATH={}", compiler_path); +} diff --git a/thirdparty/blake3/tools/compiler_version/src/main.rs b/thirdparty/blake3/tools/compiler_version/src/main.rs new file mode 100644 index 000000000..767cb31bd --- /dev/null +++ b/thirdparty/blake3/tools/compiler_version/src/main.rs @@ -0,0 +1,27 @@ +use std::process::Command; + +fn main() { + // Print the rustc version. + Command::new(env!("CARGO")) + .args(&["rustc", "--quiet", "--", "--version"]) + .status() + .unwrap(); + println!(); + + // Print the Cargo version. + Command::new(env!("CARGO")) + .args(&["--version"]) + .status() + .unwrap(); + println!(); + + // Print the C compiler version. This relies on C compiler detection done + // in build.rs, which sets the COMPILER_PATH variable. + let compiler_path = env!("COMPILER_PATH"); + let mut compiler_command = Command::new(compiler_path); + // Use the --version flag on everything other than MSVC. + if !cfg!(target_env = "msvc") { + compiler_command.arg("--version"); + } + let _ = compiler_command.status().unwrap(); +} diff --git a/thirdparty/blake3/tools/instruction_set_support/Cargo.toml b/thirdparty/blake3/tools/instruction_set_support/Cargo.toml new file mode 100644 index 000000000..eef8a80d2 --- /dev/null +++ b/thirdparty/blake3/tools/instruction_set_support/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "instruction_set_support" +version = "0.0.0" +edition = "2021" + +[dependencies] diff --git a/thirdparty/blake3/tools/instruction_set_support/src/main.rs b/thirdparty/blake3/tools/instruction_set_support/src/main.rs new file mode 100644 index 000000000..6b509b053 --- /dev/null +++ b/thirdparty/blake3/tools/instruction_set_support/src/main.rs @@ -0,0 +1,10 @@ +fn main() { + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] + { + dbg!(is_x86_feature_detected!("sse2")); + dbg!(is_x86_feature_detected!("sse4.1")); + dbg!(is_x86_feature_detected!("avx2")); + dbg!(is_x86_feature_detected!("avx512f")); + dbg!(is_x86_feature_detected!("avx512vl")); + } +} diff --git a/thirdparty/blake3/tools/release.md b/thirdparty/blake3/tools/release.md new file mode 100644 index 000000000..26c492723 --- /dev/null +++ b/thirdparty/blake3/tools/release.md @@ -0,0 +1,16 @@ +# Release checklist + +- Make sure `cargo outdated -R` is clean in the root and in b3sum/. +- Bump the version in the root Cargo.toml. +- Bump the version in b3sum/Cargo.toml. + - Bump the dependency version too, if new features are used. +- Delete b3sum/Cargo.lock and recreate it with `cargo build` or similar. +- Update the `-h` output in b3sum/README.md if it's changed. +- Bump `BLAKE3_VERSION_STRING` in c/blake3.h. +- Bump `VERSION` in c/CMakeLists.txt. +- Make a version bump commit with change notes. +- `git push` and make sure CI is green. +- `git tag` the version bump commit with the new version number. +- `git push --tags` +- `cargo publish` in the root. +- `cargo publish` in b3sum/. |