-
Notifications
You must be signed in to change notification settings - Fork 644
Wizard recipe: OpenCV-v4.4.0 #1497
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
Wizard recipe: OpenCV-v4.4.0 #1497
Conversation
|
I'm not sure why the build failed on the windows machine. It looks like the dlls were made. |
|
I suggest submitting a build for all platforms here so we can then see what the issues are on the failing platforms. |
|
Will do, is there a way to update this pull request using the wizard? If not, just close this one and I will open a new one. |
|
No, simply edit the file in this pull request. Please don't open new pull requests, it's a waste of time and scatters discussion across multiple places |
|
I saw this GSoC binding to Julia. |
|
I think it's better to wait for the 4.5.0 release. |
|
Just curious- what is wrong with 4.4? Can we not get it in for the platforms it builds on? |
|
Notting wrong with 4.4 but the guys at GSoC did amazing work (which I stumbled upon accidentally), and I would recommand anyone how try to call OpenCV functions to compile it from source with Julia flags. And sure we can get it for the platforms it builds on. I think the Windows one is also working but I'm not sure what is the problem. |
|
@archit120 Could you chime in on what is necessary for OpenCV bindings to be built? Can you help with the BB recipes for opencv and cxxwrap wrappers? |
|
I tried to get BB recipe done after GSoC period was over but this semester has been swamped because of a delayed start. The way to get this to work shouldn't be too different from any other package that uses CxxWrap but there's a bit more complexity because the OpenCV compilation process also generated the Julia package itself. The best way to do this would be to create another Julia package like OpenCV.jl that has the generated Julia package files but instead of using the manually linked library it depends on a JLL targetted at the exact same build configuration that the .jl files were generated from. |
|
Thanks @archit120. Would it be possible for you once things are calmer to help out with these bindings? With BB binaries, as you may imagine, the usage of the package will increase manifold. |
|
Maybe the simplest thing is to generate one JLL, if the opencv build process and cxxwrap bindings are all in the same package. |
|
I would love to help, but I will need some guidance. |
|
@ViralBShah Yeah, I want to get back to finishing this ASAP because the build process is extremely complicated right now. I'm not aware if JLL can contain regular Julia package code but if that's possible then yes, it might be another possible way. It would still require some modifications in the OpenCV build system to create packages that could work this way and maybe BinaryBuilder? However, I think most other CxxWrap based packages take the approach of splitting the binary and the wrapper which is possible in this case too. @ordicker I think the path to do this would be to first create a build recipe that is able to compile OpenCV binaries with the Julia flags on. Once that's done, we could just copy over the package file to a new location like OpenCV.jl and modify it to use the jll it was created from. |
|
Got it, I will try to make a recipe with Julia flags. BTW do you know when OpenCV plans to release 4.5.0? 4.4.0 doesn't have those, and I prefer to make the recipe on stable release. |
|
Yes, Julia code should be shipped in the regular Julia package way. Perhaps the simplest thing is to generate it once, check-in the Julia code into the package and compile opencv into the JLL. Don't try to automate the whole thing in order to get all this working. I guess if 4.4 doesn't have the Julia flags, we have to certainly wait for 4.5. |
|
4.5 is out. I will try to compile it with Julia flags. |
|
My build_tarball.jl might help you. It builds OpenCV with 4.5.0 and add WITH_QT flags for linux platform. Here is my application that uses My JLL package |
|
That's really helpful, thanks! |
|
Note that if we skip If we use That's why I added You can also try a build_tarball.jl with headless version. Since it omits |
|
We now have Qt building on the arm systems. |
|
It would be nice to get OpenCV into Yggdrasil. |
This pull request contains a new build recipe I built using the BinaryBuilder.jl wizard:
@staticfloat please review and merge.