-
Notifications
You must be signed in to change notification settings - Fork 18
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
[EXPIRED] Windows binary #109
Comments
YES PLEASE, especially on Windows. I wanted to burn something after spending ~30 minutes trying to build ucg under Cygwin. It baffles me that people complain about C/C++ development on Linux... |
Hey @sergeevabc , good to hear from you. I'd love to, and in fact it's been on the todo list here for a long time: see #23 , "Get building on MinGW-64" (that's effectively native Windows). The problem so far has been that I'm depending on two libraries which don't exist for native Windows: the fts file traversal library and the argp library. I'm rewriting the code to eliminate the dependency on the former, and have longer-term plans to eliminate the latter. |
@gvansickle, thank you for a quick reply. I believe it’s called static build, i.e. no-dependencies. |
Hey @kirbyfan64 , good to hear from you again! What were the issues trying to build under Cygwin? Just the normal Cygwin issues that it kinda/sorta/isn't native Windows, or was it something with the |
@gvansickle, by the way, evaluate ripgrep: it mentions ugc in README.md and offers Windows binary. |
Normal Cygwin crud. Maybe you'd find this interesting; it's a project to let people distribute Cygwin-compiled binaries. |
Hey @sergeevabc , @kirbyfan64 , I looked into this again, and argp is at this point the main stumbling block; there appears to be no real option for MinGW. There are some which purport to be, but they're old and I can't get them to build. I wrote up #94 a while ago questioning whether to roll my own arg parsing, and this is one more good reason to do so. |
@gvansickle Maybe you'd find TCLAP interesting? |
Thanks @kirbyfan64 , that's one I hadn't seen before. It does look interesting..... This one looks even better: http://optionparser.sourceforge.net/index.html |
Hmmm, yeah, it's coming back to me now: checking for openat... no
checking for fstatat... no
checking for aligned_alloc... no
checking for posix_memalign... no
configure: error: cannot find an aligned memory allocator. This is gonna be like the OSX thing all over again ;-). |
Wait, are you trying this natively, or inside Cygwin? Because, if it's nativel, you're going to have to rewrite everything that uses |
I want to have a native Win64 executable, if for no other reason than to be all things to all people... well, some things to the most people practically possible at any rate. Like I said, it already builds and runs fine under Cygwin; but even I (a Cygwin user/sometimes-contributor since the Cygnus days) think it's a bridge too far to ask people to install Cygwin just to get the awesomeness of I did take a quick look at Cygnal, and will have to give that some serious thought. It of course can't be as simple as putting a DLL in the same directory: I'm currently linking to five "cygsomething.dll"s according to What I do need to do is package up the binary for Cygwin, but I should also do that for Debian, and OSX, and the dozens of RPM variants which refuse to agree on the name they ship libpcre2 under, etc etc etc. If there were only more weeks in the day..... @kirbyfan64 (and I think I've asked you this before), how are you using |
Other multi-platform greps are distributed as standalone .exe perfectly fine: sift, pt, ripgrep. As for Cygwin, I see this Iconv depends on it and that Iconv, standalone and static, does not. |
Six months passed. Err… Hello? |
Six months?!? Seems like only half a year ago. If I only had more of those round tuits @sergeevabc ! The good news is that the troublesome dependencies are now gone on the master branch. The bad news is I'm doing most of my development on Fedora these days. Thanks for the ping, I definitely haven't forgotten about this. |
gvansickle writes:
Cygnal provides a replacement for the main If you depend on additional DLL's, you can just pull them from the stock Cygwin installation. It's probably a good idea to stay close to the same Cygwin that Cygnal is based from. I just rebased Cygnal to Cygwin 2.9.0 a week ago. I started the Cygnal project precisely because Cygwin switched to the LGPL license. It is permissible to link even proprietary executables with the Cygwin components. I had the idea for Cygnal prior to that, but the licensing was in the way. In my case, I wanted a decent POSIX library for the Windows port of a BSD-licensed program, without that port of that program becoming GPL-ed as a whole. I use NSIS for the Windows installer of the TXR language. The script is here: http://www.kylheku.com/cgit/txr/tree/inst.nsi As you can see, this is pulling in three DLL's:
It's pulling some DLL's right out of the Cygwin installation: the GCC run-time support and Libffi. The In the Makefile you can also see an example of how resources are compiled and added to the Adding the You can just grab this script and use it as a template for your needs (if NSIS is acceptable). |
@kkylheku, being a mere user and not a developer, It is difficult for me to follow your thought to the end. |
Err… Hello? |
Dear Gary,
Could you be so kind to generate
.exe
for the rest of us who are merely users w/o compiler?The text was updated successfully, but these errors were encountered: