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

Windows library dependencies #240

Closed
justinmk opened this issue Feb 16, 2017 · 2 comments
Closed

Windows library dependencies #240

justinmk opened this issue Feb 16, 2017 · 2 comments

Comments

@justinmk
Copy link
Contributor

Currently the appveyor artifact includes libGLESV2.dll and opengl32sw.dll. These all are graphics-related, but none seem to be required for nvim-qt to run on Windows. Removing them saves 18 MB.

Not sure if they are useful on certain systems (I'm running in a 32-bit Windows VM without hardware acceleration).

@equalsraf
Copy link
Owner

Hard to tell for sure because Qt does a lot of dynamic loading. This also depends on the Qt version and seems to have changed in 5.5.

http://doc.qt.io/qt-5/windows-requirements.html#dynamically-loading-graphics-drivers

Some additional detail here https://blog.qt.io/blog/2014/11/27/qt-weekly-21-dynamic-opengl-implementation-loading-in-qt-5-4/

In Qt 5.4 there is a new configure option on Windows: -opengl dynamic. This, in addition to -opengl desktop and -opengl es2, changes the OpenGL implementation (and implicitly the window system interface API) that Qt is built against. However, unlike the previously existing flags, dynamic is something different. Enabling it ensures that neither the Qt libraries nor the applications link directly to an OpenGL implementation, meaning that neither opengl32.lib nor libEGL.lib + libGLESv2.lib are passed to the linker. Instead, Qt will, upon application startup, choose the implementation to load.

It seems this is the default behavior since 5.5 and so we would need to include those libraries.

@justinmk
Copy link
Contributor Author

Ok, those references are helpful. opengl32sw.dll is huge and seems to be software-implemented GL, which would be horribly slow and doesn't seem to be needed anyway. So I'll only remove that, in the Neovim package. For consistency it might be advisable to also remove it in neovim-qt's own build, if there's a Qt build-time option to do so. It's up to you though. Thanks.

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