conan-io / wishlist

This repo is to propose libraries, frameworks, and code in general that users would like to have in conan
MIT License
49 stars 5 forks source link

Vulkan #144

Open acdemiralp opened 6 years ago

acdemiralp commented 6 years ago

Vulkan is a graphics API similar to OpenGL and DirectX. Available here: https://vulkan.lunarg.com/sdk/home Sadly only provides installers but perhaps the installation could be triggered through conan?

Croydon commented 5 years ago

There are more SDKs available for Vulkan, so this should be more specific (e.g. https://github.com/ARM-software/vulkan-sdk)

@birsoyo has a recipe for the Lunarg SDk here https://github.com/birsoyo/conan-vulkan

However, I strongly suggest that the package name should be more specific, something like lunarg-vulkan-sdk

madebr commented 5 years ago

bincrafters/community#624

SpaceIm commented 3 years ago

update 2021/03/21

Most components of the Vulkan SDK of LunarG are now in conan-center-index:

Missing components:

I think that in the near future we should be able to create a vulkan-sdk recipe based on all these recipes (it's exactly what is shipped in Vulkan SDK of LunarG).

SetoKaiba commented 3 years ago

@SpaceIm How to use it? The vulkan-headers doesn't contain the lib. And it doesn't set the lib reference for me as well.

SetoKaiba commented 3 years ago

https://github.com/alaingalvan/conan-vulkan-sdk/blob/master/conanfile.py

Maybe can take this as a reference? It copies the lib and specifies the lib.

SpaceIm commented 3 years ago

It depends: do you load function pointers at runtime? Do you want to link vulkan-loader? Are you on Macos or Linux/Windows? Do you need validation layers?

conan-center doesn't provide a monolithic Vulkan SDK, but a set of recipes. All these recipes together are equivalent to the Vulkan SDK of LunarG, but you don't need all these recipes depending on how you use Vulkan.

Basically, you probably need vulkan-headers as a bare minimum. If you link to vulkan-loader, instead of loading it at runtime (vulkan-loader is installed along GPU drivers on Windows & Linux), you need also vulkan-loader recipe. If you want to use khronos validation layers, you need vulkan-validationlayers recipe (others validation layers are not yet available in conan-center). If you are on Macos, you need moltenvk recipe (and depending if you want to dynamically load or link to vulkan functions, or if you want to use validation-layers, you need or doesn't need vulkan-loader).

If you want to compile you shaders to spirv with shaderc, you need shaderc as build requirement.

SetoKaiba commented 3 years ago

Thank you. vulkan-loader is what I want.