-
Notifications
You must be signed in to change notification settings - Fork 138
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
Unable to compile with -DARES_ENABLE_LIBRASHADER=OFF
#1780
Comments
The librashader header is currently required to build ares even if We currently by default fetch the librashader header from the latest However, you are configuring with Currently, you will need to either:
|
Got it, I should have figured that option would fetch the headers, too. The headers also seem to be available under |
That is certainly technically possible, but I would not recommend relying on that indefinitely. the inclusion of the entire librashader repo under I am still thinking about the best way to handle the librashader header, particularly keeping in mind Linux where I am definitely aware that "download stuff as part of configuration" is not the best of patterns. If all dynamic dependency code is removed, it's possible that we would end up leaving just the header in-tree to alleviate this issue (if librashader linking is not reworked entirely by that point) given the hard dependency. I am certainly open to feedback on this; in any case it will be kept in mind going forward. |
Ah, I see. The reason I ask is because I would rather avoid downloading ares-deps if possible. I'm trying to set up ares for a package manager (Portage), and the network is sandboxed during the build process, forcing me to hardcode the download URL as a source along with some ugly code to mimic the download/extract/hash process that the CMake script does. One way to mitigate this might be if the release tags for ares-deps matched ares, as it currently uses a date. This wouldn't help for
If the header is totally necessary for compilation, that might be the best way to do this. I wouldn't consider it a hack either, as it's pretty much the same as including a header-only library. |
You shouldn't need to do any duplication of the specific handling ares does for ares-deps. If you need the build system to find a dependency in a specific location (in this case the librashader header), all you should need to do is pass (er, sorry, the above applies IF you can make the librashader header available somewhere on disk for your package to see, which may be the difficulty) |
Both It’s up to the application to declare the supported API version which is defined as For example, I had considered switching the default behaviour of the Vulkan runtime from dynamic rendering to render-pass based rendering over an API bump from 0 to 1. If Due to lack of users at the time I ended up switching the default behaviour to render-passes across all API versions, but that’s just one example of something that would have been allowed to change across an API bump. If I were to make such a change today, it would only take place across an API bump from 2 to 3. |
As of the legacy build system removal yesterday, the librashader headers (by themselves) are back in the ares source tree now. Hence, you should be able to build without librashader without requiring any external resources. Let me know if you have any further issues. |
Describe the bug
With the
-DARES_ENABLE_LIBRASHADER=OFF
compile option, intended to disable librashader support, Ares fails to build at the CMake configuration step.Error:
To Reproduce
Add
-DARES_ENABLE_LIBRASHADER=OFF
to the compile options.Expected behavior
According to this code:
ares/cmake/finders/Findlibrashader.cmake
Lines 123 to 136 in fd8bcad
A fallback target is supposed to be used in place of an actual librashader target. However, ruby still fails to configure at this line:
ares/ruby/cmake/os-linux.cmake
Line 135 in fd8bcad
If I understand the intended functionality of the fallback target correctly, this should not occur.
In addition, when commenting out this line, the build actually starts, but eventually fails when it cannot find the librashader headers. Perhaps this is another issue?
Additional context
I am compiling the master branch (at 639ebe6) on Linux. Here are my compile options:
The text was updated successfully, but these errors were encountered: