Skip to content
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

Please reconsider first-class support for Unix-centric build scripts in Cargo #887

Closed
kornelski opened this issue Nov 15, 2014 · 1 comment

Comments

@kornelski
Copy link
Contributor

The introduction to issue #610 unfortunately describes exactly what I'm doing: wonky make-without-configure Unix-centric packages.

And I agree that's a problem. I'd rather create packages that work well on Windows, but I don't know how.

Cargo isn't removing roadblocks that prevent me from making Windows-compatible packages, but it's trying to push me to support Windows even though I can't.

I haven't used Windows much in 10 years and I have no idea how to write a build script without the GNU toolchain. I've tried using Visual Studio, but it's a massive piece of software, and for me every interaction with it is puzzling, overwhelming and takes many frustrating hours (it's not fault of VS, it's just foreign to me). MinGW/Cygwin is the only way I can get anything done on Windows.

Deprecation of bash build scripts from Cargo only makes my life harder. I still won't create Windows-compatible packages, because I still don't know how. Having Turing-compatible language at my disposal doesn't help at all, because I'm not going to rewrite bash/make/gcc in Rust, and I can't use batch files/Visual Studio/MSVC.

You haven't added any features that would help me build packages for Windows, but you're taking away the feature that enabled me to build packages for Unix and Windows-with-MinGW.

@alexcrichton
Copy link
Member

The purpose of a build script is to provide a fundamental base on which to provide a cross-platform crate. If you choose to not actually implement windows support, that's certainly ok, but Cargo isn't catering to that use case. If you prefer using bash scripts or makefiles I recommend just having a build script call out to make/sh.

You haven't added any features that would help me build packages for Windows

This isn't quite true, the point of build dependencies is to seamlessly provide you a methods to build packages on windows, despite you not actually thinking about it explicitly. This is a result of dependencies themselves taking on all the fun logic of doing so.

For now I'm going to close this as this is not something that we would like to encourage, and should still be possible today through build dependencies if truly desired.

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

No branches or pull requests

2 participants