-
-
Notifications
You must be signed in to change notification settings - Fork 27
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
package for Windows #312
Comments
here the generated Windows 64 bit binaries package:
I noticed the two binaries was not stripped, so I stripped them, this is the new results:
so 75 MiB. |
Just curious… Is this a release build? |
Please checks the following generation steps (on MinGW64/MSYS2 on Windows 64bit), maybe there is my mistake if you get 22 MB package on Windows: Note: I do not used: |
I'm not a developer, so please list the needed steps for a release build |
Sorry I wasn't being clear enough. Not sure how things work on MinGW64/MSYS2, but I build nedit-ng using Qt Creator with MSVC, which allow us to choose the build target. If we make the Release build, the exe should have been stripped, and the compiler should optimize the binaries to run better. Debug build of nedit-ng is horribly slow in some areas. |
At the very least, I would try changing the
That will ensure that it is not a debug build and is nice and optimized (assuming that mingw + make works as expected) |
Yea, an 80MB .exe sounds like a debug build to me for sure. |
sorry I do not know MSVC, I have done another test with MSYS2 and -DCMAKE_BUILD_TYPE=Release
Do you distribute a pre-compiled Windows package? |
Honestly, I should look into anything having my CI pipeline generate windows binaries automatically. Right now it is entirely a manual process that I do pretty much upon request. |
One quick question though, what are the units of those numbers? Because if it's bytes then two MB for the main binary is actually a pretty reasonable size! Otherwise it looks like the rest of the size is from support libraries which certainly don't need to be THAT big |
It'd be great if CI can generate the windows binaries. That way we can even have the 'nightly' builds readily available. BTW, just for my knowledge, I tried to make a distribution package using my setup, which turned out to be much less troublesome than I thought. The only extra step required is to download and install the VC redistributables on my test box, then just copy the windeployqt'ed release build directory over, and voila.... we have nedit-ng running. |
BTW, just FYI. My release build directory is taking up about 97MB, of which nedit-ng.exe only contributes 2.2MB. But these days, I don't really think it's that much a bit deal. |
Units are Bytes. The DLL are a copy of the one supplied by the MSYS2 GNU distribution, and seems are not stripped. |
I stripped everything I can, and this saved some space:
and everything still work as expected. |
are there any DLL that are not required? |
no, deleting one of them, running the executable complaint that the DLL is missing |
Do you mean you manually deleting one by one to test, and none of them can be deleted? |
no, I put the executable alone in an empy CMD sandbox, and run it. |
here the script I'm using to create the package:
|
are you interested in built package link? |
have you tried the ldd utility? might be less painful ;-) |
with ldd you will finish in same manually iterate, as it do not find the dependencies of dependencies, and you have to parse the ldd output, and check if the listed deps are already in the list or no. OK, you can write a script for automation. |
just to see if ldd has improved since the last time I used it, I run it on nedit-ng and it show the same dependancies in nedit-ng root I put over there (so it found some deps of deps), but without the subtree.
You need the complete tree I listed over there for nedit-ng to start correctly. Maybe for simpler (not Qt app) ldd work as expected, so thank you for suggestion. |
I have not found a 'package' directory or something right for a Pull Request, so here a compact version of the script:
|
here the Win64 package: |
Ah, I see why my build was about 20-ish MB, I was looking at the zip, not the uncompressed size! Which matches what you got a result too. |
Just gave it a try, and it opened successfully on my test box. However, it also opened a cmd window to launch nedit-ng. My build does not open a cmd window. |
It was sufficient for my setup (Qt Creator + MSVC), but perhaps not for you since you have to bundle the MSYS libraries. Well, it doesn't matter, since you already did the hard work to identify the required dll's |
and 7zip package is less than 17 MB, but not accepted by github |
yes, as now I can't avoid that, maybe a build switch will skip that |
Good news for anyone tracking this issue! I actually recently figured out how to make the github build pipeline automatically create a win64 build and package it up into a zip with all dependencies. (20MB download, 55MB unzipped, most of the size is Qt dependencies, including a 20MB software opengl renderer, so I'm looking into if that's REALLY needed or not). Anyway, my plan is to make it so this zip is automatically available for download whenever a release is created (and one is coming soon, it's WAY overdue, a LOT has improved in the last 2 years!) I'll be closing this issue once the release is done and a win64 build is available for download under the releases section. |
I compiled nedit-ng with MinGW64/MSYS2, it work well.
I tryed to generate a Windows package, will report the list of dependancies
The text was updated successfully, but these errors were encountered: