Rework LLVM into Find module and enact new component policy. #8379
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.
Refactor
dependencies/llvm
into a find module,FindHalide_LLVM.cmake
, that encapsulates the way we use LLVM.As per discussion at the dev meeting and offline with @steven-johnson and @abadams we now always include the GPU backends and all LLVM backends we support. At a minimum, we require WebAssembly and X86, as required by #8344.
The
dependencies/
directory is now exclusively for private, optionally vendored dependencies. Going forward, if we need to take a dependency on a project that does not provide a CMake package (and upstream will not agree to a contribution of one), we will write a Find module incmake/
.In keeping with the pattern of standardizing the names of our configuration points, the
Halide_LLVM
find module acceptsHalide_LLVM_SHARED_LIBS
as an argument for pickinglibLLVM.so
/.dylib
on Linux/macOS. This replaced the oldHalide_SHARED_LLVM
option, which is still accepted with a deprecation message.Note: this commit temporarily breaks
Halide_BUNDLE_LLVM
, which will be replaced byHalide_BUNDLE_STATIC
in the next few CMake advancement PRs.