Comments (9)
I guess it's only needed when linking frameworks?
from cargo-zigbuild.
Not just frameworks, but also bundled libraries (like openssl). This isn't required for projects that are fully Rust, but for anything more involved, it may be necessary,
from cargo-zigbuild.
Does CFLAGS
/CXXFLAGS
/LDFLAGS
or RUSTFLAGS
supports setting --sysroot
?
from cargo-zigbuild.
Alternative we can add support to download a MacOS SDK automatically and set up --sysroot
properly.
from cargo-zigbuild.
I think I can set --sysroot
with CFLAGS
, I'll try it out now.
Regarding the SDK, I'm not sure we can rely on that reposity to last forever without Apple DMCAing it. They allowed to download the SDKs (as part of Command Line Tools for Xcode) freely before, but now you need to be authenticated now to download e.g. https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_13.3/Command_Line_Tools_for_Xcode_13.3.dmg.
I imagine it would be quite a hassle to automate and maintain this feature...
from cargo-zigbuild.
If we need to add --sysroot
support, I think we can read it from the SDKROOT
environment variable, CMake also does this:
If not set explicitly the value is initialized by the SDKROOT environment variable, if set
https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_SYSROOT.html
from cargo-zigbuild.
I tried setting CFLAGS
/CXXFLAGS
/LDFLAGS
all to --sysroot=${SDKROOT} -I${SDKROOT}/usr/include -L${SDKROOT}/usr/lib -F${SDKROOT}/System/Library/Frameworks
but it didn't work with cargo zigbuild
(tried without the env as well).
I managed to compile without setting sysroot in the linker script with just: ~/.cargo/bin/cargo-zigbuild zig cc -- -target aarch64-macos -I${SDKROOT}/usr/include -L${SDKROOT}/usr/lib -F${SDKROOT}/System/Library/Frameworks -g $@
so I guess it's more of an include/library/framework lookup issue.
from cargo-zigbuild.
Can you try #20 ?
from cargo-zigbuild.
Hey, thanks for the swift implementation!
I tried it out and can confirm it works for sufficiently new versions of zig (at least 0.9.1 ziglang/zig#10568, https://ziglang.org/download/0.9.1/release-notes.html#zig-cc--zig-c)
Doesn't work for 0.9.0 (the current version on arch), but I guess that's shouldn't be this project's problem.
from cargo-zigbuild.
Related Issues (20)
- CC 1.0.84 fails with `UnknownOperatingSystem` HOT 2
- Is cross-compilation on Linux for Windows possible? HOT 2
- zig fstack-protector bug
- No backtrace symbols on MacOS w/ Apple Silicon HOT 4
- note: error: unable to find Dynamic system library 'z' using strategy 'no_fallback'. searched paths: HOT 1
- Unknown type and functions when cross compiling zlib-ng v2.1.5 to aarch64 linux HOT 1
- cargo-zigbuild fails to compile crates that depend on linkme
- Fails to build some crates that depend on CC variable - ring etc HOT 9
- i use x86 macos with zigbuild buid aarch64-apple-darwin , but strip will cause exe error
- How to pass -fno-sanitize=undefined to `zig cc`?
- Version bump from Rust 1.73 to Rust 1.75 for `Dockerfile`
- cargo-zigbuild doesn't seem to utilize cargo config HOT 1
- `universal2-apple-darwin` panics under workspace HOT 2
- `cargo zigbuild` doesn't support static glibc builds with an explicit `--target` HOT 12
- Running `cargo doc` with `cargo-zigbuild` HOT 2
- CMake error on FLTK HOT 2
- ccache is always invalidated HOT 3
- cargo-zigbuild test doesn't pass arguments through properly HOT 2
- Allow customizing CPU features HOT 3
- Improve cargo-zigbuild zig performance HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cargo-zigbuild.