-
Notifications
You must be signed in to change notification settings - Fork 30
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
Simplify build systems, consider removing cmake #390
Comments
I'm definitely in favor of simplifying our build system. The original goal for integrating CMake was that we were having trouble maintaining our hand-rolled GNU-style Makefile, and in particular we would make changes that were causing tests to break on Windows. What I learned from folks wiser in Windows than myself is that most Windows projects use MSVC, it's hard to make MSVC work well with GNU Make (and many folks won't have it), and CMake, as complex and confusing as it can be, is the best and most popular option there. Our Windows support is pretty thin and is thanks largely to great contributions from volunteers. But it's probably no surprise that I don't regularly develop on Windows so haven't had the expertise to really make it shine. For instance you can see the README doesn't even have specific instructions for a Windows build. I think we can straightforwardly delete I'm convinced by the preference of downstream maintainers that we should support cargo-c. Can we get it to build the client/server binaries on Windows, using MSVC, and then run the integration test? Thanks to your work bringing that test into Rust, that part can be done with Cargo alone ( |
Thanks for the extra historical context 👍 I also have no significant experience with Windows, but trust the assessment that MSVC + cmake is the paved road for that platform.
That sounds good to me and seems like an immediate improvement 🎉 Do you have thoughts on the future of the
I will try to tilt at that 👍 |
In #253 there was Cmake support integrated, but I'm not sure I understand the motivation. It's described as being a cross-platform solution, but we only test it for Windows (in addition to the hand-rolled
Makefile
that already supports Windows). Was there downstream demand for this that I'm not aware of? Is it used by any integrating projects?This repository doesn't have an abundance of maintainer activity and I think it would be better to simplify, either removing the existing
Makefile
and embracingcmake
, removingcmake
and embracing the manualMakefile
, or making progress with cargo-c via #274 (my personal preference, and the preference of multiple downstream packagers).The text was updated successfully, but these errors were encountered: