Giter VIP home page Giter VIP logo

Comments (5)

KajWiik avatar KajWiik commented on May 27, 2024 1

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.

jayschwa avatar jayschwa commented on May 27, 2024

I feel like the ideal way would be:

  1. If the system already has a new-ish version, use that.
  2. If it doesn't have a new-ish version, use the system package manager to get one.
  3. 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.

SimonDanisch avatar SimonDanisch commented on May 27, 2024

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.

SimonDanisch avatar SimonDanisch commented on May 27, 2024

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.

SimonDanisch avatar SimonDanisch commented on May 27, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.