1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
include(FetchContent)
FetchContent_Declare(
flatbuffers
GIT_REPOSITORY https://github.com/google/flatbuffers.git
GIT_TAG 0100f6a5779831fa7a651e4b67ef389a8752bd9b # v23.5.26
GIT_SHALLOW TRUE
)
FetchContent_Declare(
pybind11
GIT_REPOSITORY https://github.com/pybind/pybind11.git
GIT_TAG 8a099e44b3d5f85b20f05828d919d2332a8de841 # v2.11.1
GIT_SHALLOW TRUE
)
FetchContent_Declare(
wabt
GIT_REPOSITORY https://github.com/WebAssembly/wabt.git
GIT_TAG 3e826ecde1adfba5f88d10d361131405637e65a3 # 1.0.36
GIT_SHALLOW TRUE
)
macro(Halide_provide_dependency method dep_name)
set(${dep_name}_FOUND 1)
## Set up sub-builds for Halide's requirements
if ("${dep_name}" STREQUAL "flatbuffers")
set(FLATBUFFERS_BUILD_TESTS OFF)
set(FLATBUFFERS_INSTALL OFF)
elseif ("${dep_name}" STREQUAL "pybind11")
# No special build options necessary
elseif ("${dep_name}" STREQUAL "wabt")
set(WITH_EXCEPTIONS "${Halide_ENABLE_EXCEPTIONS}")
set(BUILD_TESTS OFF)
set(BUILD_TOOLS OFF)
set(BUILD_LIBWASM OFF)
set(USE_INTERNAL_SHA256 ON)
else ()
set(${dep_name}_FOUND 0)
endif ()
if (${dep_name}_FOUND)
list(APPEND Halide_provide_dependency_args "${method}" "${dep_name}")
FetchContent_MakeAvailable(${dep_name})
list(POP_BACK Halide_provide_dependency_args method dep_name)
## Patches for broken packages
if ("${dep_name}" STREQUAL "flatbuffers")
if (NOT TARGET flatbuffers::flatbuffers)
add_library(flatbuffers::flatbuffers ALIAS flatbuffers)
add_executable(flatbuffers::flatc ALIAS flatc)
endif ()
endif ()
if ("${dep_name}" STREQUAL "wabt")
set_target_properties(wabt PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif ()
endif ()
endmacro()
cmake_language(
SET_DEPENDENCY_PROVIDER Halide_provide_dependency
SUPPORTED_METHODS FIND_PACKAGE
)
|