Skip to content

Commit 3d9936e

Browse files
authored
Arm backend: Fail early when Vulkan-Headers/volk deps are missing (pytorch#20887)
Small improvement to build system of VGF backend standalone. Change-Id: Icd562524b43a09df0355d128337fd38e231ded81 cc @SS-JIA @manuelcandales @digantdesai @cbilgin @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Elena Zhelezina <elena.zhelezina@arm.com>
1 parent 8ec27f1 commit 3d9936e

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

backends/arm/CMakeLists.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,43 @@ if(EXECUTORCH_BUILD_VGF)
155155
set(VULKAN_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH}/Vulkan-Headers/include)
156156
set(VOLK_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH}/volk)
157157

158+
set(_vgf_missing_vulkan_deps "")
159+
160+
if(NOT EXISTS "${VULKAN_HEADERS_PATH}/vulkan/vulkan.h")
161+
list(APPEND _vgf_missing_vulkan_deps
162+
"backends/vulkan/third-party/Vulkan-Headers/include/vulkan/vulkan.h"
163+
)
164+
endif()
165+
166+
if(NOT EXISTS "${VOLK_HEADERS_PATH}/volk.h")
167+
list(APPEND _vgf_missing_vulkan_deps
168+
"backends/vulkan/third-party/volk/volk.h"
169+
)
170+
endif()
171+
172+
if(NOT EXISTS "${VOLK_HEADERS_PATH}/volk.c")
173+
list(APPEND _vgf_missing_vulkan_deps
174+
"backends/vulkan/third-party/volk/volk.c"
175+
)
176+
endif()
177+
178+
if(_vgf_missing_vulkan_deps)
179+
string(REPLACE ";" "\n - " _vgf_missing_vulkan_deps_text
180+
"${_vgf_missing_vulkan_deps}"
181+
)
182+
message(
183+
FATAL_ERROR
184+
"EXECUTORCH_BUILD_VGF=ON requires Vulkan-Headers and volk from "
185+
"backends/vulkan/third-party, even when EXECUTORCH_BUILD_VULKAN=OFF. "
186+
"Missing:\n"
187+
" - ${_vgf_missing_vulkan_deps_text}\n"
188+
"Run from the repository root:\n"
189+
" git submodule update --init "
190+
"backends/vulkan/third-party/Vulkan-Headers "
191+
"backends/vulkan/third-party/volk"
192+
)
193+
endif()
194+
158195
if(EXISTS
159196
"${EXECUTORCH_ROOT}/examples/arm/arm-scratch/ml-sdk-for-vulkan-manifest/"
160197
)
@@ -246,6 +283,12 @@ if(EXECUTORCH_BUILD_VGF)
246283

247284
target_link_libraries(vgf_backend PRIVATE executorch_core)
248285
target_link_libraries(vgf_backend PRIVATE vgf)
286+
287+
# When VGF compiles volk.c itself, link libdl for dlopen/dlsym
288+
if(NOT EXECUTORCH_BUILD_VULKAN)
289+
target_link_libraries(vgf_backend PRIVATE ${CMAKE_DL_LIBS})
290+
endif()
291+
249292
executorch_target_link_options_shared_lib(vgf_backend)
250293

251294
# end config for VGF builds

0 commit comments

Comments
 (0)