Crates.io | tracy-gizmos-sys |
lib.rs | tracy-gizmos-sys |
version | 0.11.0 |
source | src |
created_at | 2024-01-16 18:38:19.264631 |
updated_at | 2024-02-21 13:22:24.774486 |
description | Bindings for the Tracy C API |
homepage | |
repository | https://github.com/den-mentiei/tracy-gizmos |
max_upload_size | |
id | 1101867 |
size | 1,459,461 |
We maintain a carbon copy of Tracy's public part, so we can build it as a static library and also bindgen the low-level bindings based on its public header.
Instead of submodules or manual copying, we are using git-subtree
to
do this. It worth revisiting this as local checkout and 1 copy command
might be easier.
Bindings are generated via bindgen
and are commited as a src/
part. It allows to build this crate quickly and without LLVM (bindgen
requires libclang to do its thing).
When tracy/
is updated, the bindings should be regenerated:
$ cargo clean && cargo build -F bindgen
Just do the following from the git repository root:
# adding tracy remote and checking out its master in a staging branch
$ git remote add -f tracy-upstream git@github.com:wolfpld/tracy.git
$ git checkout -b staging-tracy tracy-upstream/master
# split off a subdirectory 'public' from its master into a separate branch
$ git subtree split --squash -P public --annotate="Tracy: " --rejoin -b tracy-public
# checkout our main and add 'public' parts above to our 'sys/tracy'
$ git checkout main
$ git subtree add -P sys/tracy --squash tracy-public
Just do the following from the git repository root:
# switch back to the tracy's master and update it
$ git checkout staging-tracy
$ git pull tracy-upstream master
# update the subdirectory branch with changes received above
$ git subtree split -P public --annotate="Tracy: " --rejoin -b tracy-public
# checkout our main and merge new 'public' parts to update our 'sys/tracy'
$ git subtree merge -P sys/tracy --squash tracy-public
Licensed under either of
at your option.
Note that the Tracy public part, that this crate uses and embeds, is licensed under the 3-clause BSD license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.