Comments (5)
Perhaps a mention in the README.md that cmake is a dependency would be good... Rather difficult to find out what's the real problem...
from glfw.jl.
I feel like the ideal way would be:
- If the system already has a new-ish version, use that.
- If it doesn't have a new-ish version, use the system package manager to get one.
- If none of the above works, try to build it.
The problem with (2) is that many system package repos seem to lag behind quite a bit. For example, GLFW 3 has been out for ~18 months, and it looks like Debian and Ubuntu have only now picked it up in their latest releases. The fact that it seems to have different names in across package managers can make things tricky too.
The problem with (3) is that you need some dependencies installed for the build to work. Chances are if (2) failed for some reason, (3) probably isn't going to work for the dependencies either.
I like the idea of BinDeps, but I didn't have much luck with it and found it confusing the last time I tried to use it.
In general, I feel like trying to make it work for every platform and package manager is a lost cause and time that would be better spent elsewhere. For some time, I've contemplated just changing the install process to detect if the library exists in the system path or not, and printing a message to the GLFW download page if the latter. Essentially, be up front with the user about making them install it rather than failing with some cryptic build error message.
from glfw.jl.
We can definitely improve on the error message, which is probably the first step we can do!
I'd add 4. give good error messages if build fails. From my experience, installing cmake and getting the dependencies is enough to get the build working.
I like the idea of BinDeps, but I didn't have much luck with it and found it confusing the last time I tried to use it.
Haha, that was exactly what happened to me. Just looked into it today, hoping it got less confusing, but I just decided to open this issue instead.
from glfw.jl.
So I think on Ubuntu, the hardest part is to get the deps, which we could manually do via the commandline (which is what BinDeps does in the end anyways, right)? Basically try what package managers are available and then use them.
I'm not very accustomed to Mac Os so I wouldn't really know what needs to be done there. I just know, that it was a little bit painful to install cmake for the command-line, the one time I tried.
from glfw.jl.
That's a good point, not sure why we still don't have that in the README. Care to make an edit to the readme? You can just edit it directly in github: https://github.com/JuliaGL/GLFW.jl/blob/master/README.md
from glfw.jl.
Related Issues (20)
- Consider removing call to `Init` in `__init__` HOT 3
- Segfaulting on GLFW.CreateWindow with Julia v1.5.0 HOT 12
- GLFW.SetWindowUserPointer/GLFW.GetWindowUserPointer HOT 3
- [Vulkan] Creating window surface cannot work on macOS HOT 1
- EGL support? HOT 1
- inaccurate performance counters HOT 1
- Compatability with julia-vscode? HOT 1
- libGL error: failed to load driver: swrast HOT 12
- test fail for Manjaro on Renoir APU HOT 1
- Don't know how to install this?
- TagBot trigger issue HOT 1
- No matching fbConfigs or visuals found HOT 3
- How to add new user data to the window context?
- Going to fullscreen causes a crash on macOS (Apple M1) HOT 1
- Please replace deprecated Makie.primary_resolution() with GLFW.jl cross-platform function
- GLFWError (API_UNAVAILABLE): WGL: The driver does not appear to support OpenGL HOT 1
- GL dependencies kill CI capacity HOT 2
- GLFW crashes entire julia session after re-attaching in tmux HOT 2
- unable to load GLMakie HOT 2
- GLFW couldn't create an OpenGL window. HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glfw.jl.