vcpkg manifest file for ease of development; support to use as many vcpkg ports as possible#3119
Merged
9prady9 merged 1 commit intoarrayfire:masterfrom May 21, 2021
Merged
Conversation
Member
Author
|
@jacobkahn Please let me know your thoughts on the manifest file content. Note that, the following dependencies are still retrieved using CMake's fetch content workflow. I did notice a problem with this approach while update |
Contributor
|
@9prady9 we spoke offline a bit about this -- the manifest looks good to me though! |
Member
Author
|
363c7a2 to
74c0643
Compare
41f4aa9 to
2055a9e
Compare
Developers can now invoke cmake as shown below to install dependencies automatically when using vcpkg and cmake. ```cmake cmake .. -DVCPKG_ROOT:PATH=<path to vcpkg repository tool> ``` or ```cmake export VCPKG_ROOT=<path to vcpkg repository tool> cmake .. ``` One may add `-DAF_BUILD_CUDA:BOOL=ON` command line argument to enable CUDA dependency check. Even if not provided, ArrayFire will silently check for CUDA and enable the backend if available. There are couple of caveats though for the following dependencies - cuda - cudnn - intel-mkl As these libraries have complex installation mechanisms, their respective vcpkg dependency is merely a check for user. They have to be installed using respective vendor provided installers. A few important notes regarding using vcpg manifest file: 1. For linux developers, currently full support for only Intel MKL compute backend is availalbe. 2. As x64-linux triplet creates static builds only as of now, forge cannot be part of vcpkg dependency list on non windows platforms. Nevertheless, the user doesn't need to do anything as fetchcontent workflow is the fallback. 3. vcpkg manifest is for development puporses only and isn't intended to be production ready dependency management for arrayfire as there are dependencies that don't get built with vcpkg at all.
umar456
approved these changes
May 20, 2021
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Needs microsoft/vcpkg#17099 to be merged so that ArrayFire's manifest baseline is correct
Description
Changes to Users
ArrayFire development using vcpkg becomes a better experience. I am going to send in a another PR with cmake presets which should further improve development experience of ArrayFire.
Checklist
[ ] Functions added to unified API[ ] Functions documented