-
Notifications
You must be signed in to change notification settings - Fork 545
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
gmsh (gmsh_jll) -> wrong gmsh.dll path in artifacs folder for windows? #2502
Comments
It is correct that the shared library for Windows is under |
Hi, thanks for the quick answer 😊. Maybe it is correct (as in this is a standard? 🤷♂️), but as I mentioned, if you look at the gmsh.jl under the lib folder it looks for the gmsh.dll at the same directory in the initialize function.
and if you call the initialize function (gmsh.initialize()) (which you probably need to use the julia gmsh functions?) it will fail ... Also if I download the SDK from the website the gmsh.dll is located in lib, so i suspect it is should really be there ? |
Yes, libraries on Windows are installed in directories in the
I think I miss the point of this file when you use the JLL package, since the JLL packages already does this for you: when you do using gmsh_jll the library is already automatically dlopened for you, on all operating systems |
Ok, So I really should make an issue in the gmsh repo 🤔? Or is your point that I do (should) not need (use) the functionality of the gmsh.jl? Sorry if I do not understand it right now 😅 (I am not a package developer, I just wanted to make GridapGmsh work on windows ...) ? |
We could move the Julia script to
This is the build script: Yggdrasil/G/gmsh/build_tarballs.jl Lines 15 to 25 in 267589c
We don't do anything special, you should ask them why the version number isn't there when we build from source. |
I guess moving the gmsh.jl will make unix system fail with the gmsh.jl ... so that won't be a good option. To conclude I think I will have to make some local tests and file an issue to the gmsh git, to maybe fix the gmsh.jl to look for the dll inside the bin folder and fix the version number thingy ... ? Than this issue could be closed at this place. PS: Is there an easy way to get all parameter of |
I'd move it only for Windows of course. But once more, I think it's more reasonable to not use that script at all when using the JLL package: it's more reasonable, not redundant, it avoids the users downloading a new tarballs which if functionally identical to the previous one (and users always complain about the size of the
What parameters? All variables are defined in the script |
Ok, sorry if I'am just stupid here, but the gmsh.jl (I talk about) is included in the tarball of the gmsh_jll and is only a wrapper for the gmsh*.dll library functions and does not lead to any additional downloads (at least I do not find any download targets in that file or am I just wrong)? - Also if I understand you right the
Ok, I was not sure if i.e. $prefix or ARGS may receive something from functions calling the build_tarballs.jl ... Thank you very much for the help btw. 🙂 |
Ok, I think I may need some more context. Where is this script called? |
It's basically called here: here const GMSH_FOUND = true
const gmsh_jl = "C:\\Users\\Schubert\\.julia\\artifacts\\4216fe50dba72ebe84b758bf98073f269af20f94\\lib\\gmsh.jl" And then the package basically uses the exposed functionality of gmsh via gmsh.somefunction() etc... PS: I have to go now so my next respond will probably be 2-3 h later ... |
At https://github.com/gridap/GridapGmsh.jl/blob/7d64a9e9998a653a1c37ffc4aa3816b85b60f7c1/deps/build.jl#L9 the library is already dlopened and the variable to use for calling into the library is |
Ok , I get your point, but I believe the way the gmsh_jll is used here is kind of unusual, because also the fact that some library itself has a julia function wrapper module included is kind of unusual itself, I guess. |
Hi again,
|
I guess I was again missing some context. I thought the Again, we could move the script to the |
Oh, we posted the message around the same time
|
Oh yes you are right 🤦♂️. I thought it worked, because it works with the downloaded SDK from their website, but the gmsh.dll has a version there ... Wonder if they do the numbering manually for their releases ... Probably the gold way would be to make the gmsh.jl a separate package to expose the functionality of the gmsh library on a higher level, which then uses/relies on the gmsh_jll build. I have to think about this, but I guess you are right, you can do nothing to make everything work together right now... Guess we than can close this issue for now, thank you for the help I learned a lot 😅🙂. |
We can't even simply rename
👍 |
Add some temporary note, about the installation of the gmsh dependency under Windows, regarding this discussing: JuliaPackaging/Yggdrasil#2502 This commit can be undone if the underlying issues will be fixed.
Hi,
sorry that I cannot exactly name the problems cause (I do not know BinaryBuilder very well and the whole build process seems to me to have a lot of dependencies, so that I find it difficult to follow it at least without some effort) , but I will do my best to describe the problem and I hope there are some people who can figure out the cause very quickly :)
In the artifact folder of the gmsh_jll.jl package, which is used i.e. by GridapGmsh the gmsh.dll is placed inside the "bin" folder of the gmsh_jll artifacts folder, but the gmsh.initialize() function of the gmsh.jl (which is placed in the lib folder of the gmsh_jll artifacts folder) is looking in the same folder (lib folder) for the gmsh.dll, but as said its located inside the bin folder (which should be wrong, i guess).
My guess it that it has something to do with the generated code of the windows built wrapper files (x86_64-w64-mingw32-cxx03.jl, x86_64-w64-mingw32-cxx11.jl) in https://github.com/JuliaBinaryWrappers/gmsh_jll.jl/tree/main/src/wrappers, because if I look at the build log of the windows binaries (i.e. https://github.com/JuliaBinaryWrappers/gmsh_jll.jl/releases/download/gmsh-v4.7.1+0/gmsh.v4.7.1.x86_64-w64-mingw32-cxx11.tar.gz) the gmsh.dll seems to be installed in the "right" (lib) directory.
I hope someone can help me with this, thanks in advance :)
The text was updated successfully, but these errors were encountered: