Skip to content

Multiplatform Halide building from cmake... #9187

Description

@Honya2000

Hello,

I'm trying to setup universal multiplatform Halide builder in my project's cmake, so it should build out of the box.
I need to support Windows, WebAssembly, Android, iOS, Linux, etc
Unfortunately this is not so simple. The problem lies in LLVM which is building differently for different platforms.
But i do not get this, if LLVM is mandatory part of Halide why it cannot download and install it automatically during Halide cmake invoking?
So question is how to integrate Halide to the projects via simple:
add_subdirectory(third_party/Halide)
without manual LLVM setup, vcpkg hassle, etc.

Currently - the only way for me to integrate it - is to build Halide manually for each platform and link the project to precompiled libs. Which is quite bad solution, because libs are quite huge in size. Especially when i need Debug and Release libs.

P.S.
Tried to manually build Halide for Windows:
cmake ....\ -G "Visual Studio 17 2022" -Thost=x64 -A x64 --toolchain C:/Projects/Third/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_TOOLCHAIN_FILE=C:/Projects/Third/vcpkg/scripts/buildsystems/vcpkg.cmake

And get errors:

-- Running vcpkg install
read_contents("C:\Projects\Third\vcpkg\scripts\vcpkgTools.xml"): no such file or directory
-- Running vcpkg install - failed
CMake Error at C:/Projects/Third/vcpkg/scripts/buildsystems/vcpkg.cmake:984 (message):
vcpkg install failed. See logs for more information:
C:\Projects\Third\ai\Halide_build\VS\vcpkg-manifest-install.log
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.30/Modules/CMakeDetermineSystem.cmake:146 (include)
CMakeLists.txt:2 (project)

Not sure what is going on, but vcpkg\scripts\vcpkgTools.xml does not exists...

vcpkg is the latest. Tried all boostraps i found inside vcpkg, didn't help.

Any ideas ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions