Closed rgov closed 5 months ago
I've been working on this. A change to Homebrew will be required as they are currently building shaderc without BULD_SHARED_LIBS
enabled.
FindVulkan is going away upstream as well, so I'm eliminating the use of its functionality from scopehal / scopehal-apps proper; VkFFT still uses it though.
Nice. Not sure if you saw the formula I had in the expandable part of the first post, but it's a good starting point.
I built HEAD
successfully from Homebrew, after uninstalling the Vulkan SDK.
depends_on "shaderc" => :build
depends_on "glslang"
depends_on "spirv-tools"
depends_on "vulkan-headers" => :build
depends_on "vulkan-loader"
on_macos do
depends_on "molten-vk"
end
Does that look right? I'm not sure about runtime vs build time dependencies. The formula ideally works on Linux too, but I haven't tried it.
Yeah I think that looks right. I would test by unlinking the build dependencies and seeing if it runs.
We will still have to deal with #623 and #624 before this formula can be recommended to others. Also, see my comment regarding #622.
Ok, formula is working again with Homebrew dependencies after I fixed #688 by including the appropriate RPATH.
Formula includes workarounds for #623, #624 and #687.
@azonenberg At this point we can pretty much submit this to Homebrew, but I can already predict they'd prefer you tagged a release rather than always installing from HEAD
.
@rgov A while ago Homebrew moved to binary-first, so we'll have to wait until there is a release before doing so. That said, we could create a tap. However, there are some issues with installation (e.g. hardcoded paths in #624 and plugin search issues in #623) that have to be fixed first.
My formula at the top of this page already patches #623 and #624 with workarounds for the Homebrew prefix, so those aren't blockers at this moment.
@rgov would you like to PR your formula to https://github.com/ngscopeclient/homebrew-ngscopeclient, or should I add it?
Ready for review: https://github.com/ngscopeclient/homebrew-ngscopeclient/pull/1
The build instructions for macOS call for some dependencies to be installed from Homebrew formulae and others to come from the LunarG VulkanSDK.
There are also brew formulae for many components of the VulkanSDK. Just grepping for formulae from the KhronosGroup GitHub organization:
However I am unsure which VulkanSDK components are actually needed to build ngscopeclient. Could you please clarify?
Using the dependencies from Homebrew is likely a requirement to have an install formula for ngscopeclient accepted upstream.
Homebrew formula
https://github.com/ngscopeclient/homebrew-ngscopeclient/pull/1