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
[arrayfire] New Port #14240
[arrayfire] New Port #14240
Conversation
@jacobkahn, could you format vcpkg.json file firstly? See github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#manifest for solution. |
@JackBoosY @PhoebeHui — I've removed all of the submodule dependencies as mentioned (besides of A patch is needed for now to update the build config to search for these libraries rather than relying on their existing as submodules. Hopefully there can be more flexibility with the build in future ArrayFire releases such that we don't need the patch, cc @umar456 @9prady9. I'm having trouble parsing the CI failures — if you have any idea what's causing them, some help would be appreciated. |
@jacobkahn, here is CI test failure: x64-windows and x64-windows-static:
x64-osx:
|
For the post build check failrues, you can use the vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) to fix the cmake targets issue. |
Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com>
The latest CI test failures:
x64-windows-static: you need to check why it generated in a static build, and patch the CMakeLists.txt file to fix this issue, rather that removing the bin folder.
|
- Make the unified backend its own feature - Make the unified and CPU backend default features - Conditionally create a bin directory if a Windows non-static build for the unified dll - Remove fftw dependency (relies on MKL) - Only support x64
Thanks all for making this possible! @strega-nil, could you please help review and merge this PR? All features test passed with x64-windows, tested by @JonLiu1993 |
ports/arrayfire/portfile.cmake
Outdated
endif() | ||
if(EXISTS ${CURRENT_PACKAGES_DIR}/share/ArrayFire/cmake) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be an elseif()
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @strega-nil — this can be elseif()
, sure, since this condition won't be met on Windows.
@jacobkahn could you respond to whether the |
@strega-nil — just responded. Thanks for the review and those fixes! Looks like the osx CI is hanging again... |
@strega-nil — it looks like that fixup targets call isn't going to work after all — sending a fix in a moment. |
@jacobkahn alright, cool, thanks! |
Looks like CI failed because of a transitive error in the qt5 package, cc @strega-nil ? /azp run |
Commenter does not have sufficient privileges for PR 14240 in repo microsoft/vcpkg |
Command 'run
Looks' is not supported by Azure Pipelines.
See additional documentation. |
The v3.7 branch tip was still outputting shared objects with 3.7.2 versions attached to them. It's now fixed
Alright, this looks great :) Thanks @jacobkahn :) |
when i install arrayfire with vcpkg ; i check the install-x64-linux-dbg-out.log ,it appear "ninja: build stopped: subcommand failed" end of this file |
@jinggaizi Can you open a new issue to report that? Thanks. |
thanks for your reply , i use gcc version 6.3.1 and fix the problem |
Adds a new port for ArrayFire. Ports all backends -- CUDA, OpenCL, and CPU.
cc @9prady9 @umar456 to join the discussion here.
cc @padentomasello, @tlikhomanenko, @vineelpratap, @syhw, @andresy
Some things to note:
a) Some of these (e.g. those for testing) aren't required and aren't present in this port.
b) Most of the submodules that are required don't have ports and probably won't (these are ArrayFire specific projects).
c) Some things do have ports, e.g. NVIDIA Cub. The solution here is probably to ultimately change the ArrayFire build to look for Cub on the existing system rather than downloading it to prevent potential conflicts with other downstream dependencies that require Cub, although in my experience, this hasn't been an issue.
d) As a stopgap measure to solve these issues, the
vcpkg
config usesvcpkg_from_github
to clone submodules as needed them moves them into their expected directories via CMake so that they can be built from source normally with calls toadd_subdirectory
from ArrayFire CMake things../vcpkg install arrayfire[cuda]
. Multiple backends/features can be installed at once.libafcuda
,libafcpu
, orlibafopencl
, as specified. Doesn't install examples, tests, or other things, although this might be useful down the road.Have tested
x64-linux
. Might want some help testing the others.Yes