-
-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
document new dlopen feature and packaging #165
Conversation
Hey, coming here from the "Fedora Devel" matrix room. (I'm the main Rust package maintainer in Fedora.) You could simplify those cfg-expressions a little, by using some shortcuts documented here: In particular, I've also very rarely seen
I'm not even sure if You could use something like this: [target.'cfg(any(windows, target_os = "ios", target_os = "macos"))'.dependencies]
# Load libjack at runtime.
jack = "0.9"
[target.'cfg(all(unix, not(any(target_os = "ios", target_os = "macos"))))'.dependencies]
# Link libjack at build time.
jack = { version = "0.9", default-features = false } This should be equivalent to what you wanted to say in the first place:
Not really "simplified" on the whole, as I first implied, but I think it should be easier to understand for readers 😅 Hope that makes sense. |
Thanks for reviewing this @decathorpe. I also got useful feedback on the language in #lad on Libera Chat from people who know much more about JACK than I do. 😅 I like the suggestion to use the There are actually quite a bit of Apple targets supported by Rust which all use
AFAIK nobody has ported JACK to iOS or tvOS, but I suppose it is theoretically possible so I think the bindings should be prepared for that. Also The |
67ad03c
to
63e3e69
Compare
Not sure if you're still looking for feedback wrt. the dlopen feature / packaging, but since I'm still getting notifications every time this repo is updated ... either way, using environment variables for this is a really brittle solution that involves lots of error-prone manual labor. Packages for Rust crates don't "inherit" any environment variables for dependent crates - so you have to specify them when building them in crate itself, in all dependent crates that use that feature, and in any applications that uses that feature, recursively - instead of one crate specifying a dependency with a certain feature enabled or disabled (which does propagate through the dependency graph, unlike environment variables). |
I think you're misunderstanding the purpose of the environment variable. The point is to let someone building a downstream application choose whether to enable the |
44b6efa
to
b7d4e29
Compare
ping @wmedrano |
Thanks for merging. Glad we got this working. |
No description provided.