1414#
1515# The targets in this file will be built if EXECUTORCH_BUILD_VULKAN is ON
1616
17+ if (NOT PYTHON_EXECUTABLE)
18+ message (
19+ "WARNING: PYTHON_EXECUTABLE is not set! A failure is likely imminent."
20+ )
21+ endif ()
22+
23+ if (NOT EXECUTORCH_ROOT)
24+ message ("WARNING: EXECUTORCH_ROOT is not set! A failure is likely imminent." )
25+ endif ()
26+
1727if (ANDROID)
1828 if (NOT ANDROID_NDK)
1929 message (FATAL_ERROR "ANDROID_NDK not set" )
@@ -37,30 +47,67 @@ endif()
3747# Required to enable linking with --whole-archive
3848include (${EXECUTORCH_ROOT} /build /Utils.cmake)
3949
40- # Convenience macro to generate a SPIR-V shader library target. Given the path
41- # to the shaders to compile and the name of the library, it will create a static
42- # library containing the generated SPIR-V shaders. The generated_spv_cpp
43- # variable can be used to reference the generated CPP file outside the macro.
44- macro (VULKAN_SHADER_LIBRARY shaders_path library_name)
50+ function (gen_vulkan_shader_lib_cpp shaders_path)
4551 set (VULKAN_SHADERGEN_ENV "" )
46- set (VULKAN_SHADERGEN_OUT_PATH ${CMAKE_BINARY_DIR} /${library_name } )
52+ set (VULKAN_SHADERGEN_OUT_PATH ${CMAKE_BINARY_DIR} /${ARGV1 } )
4753
4854 execute_process (
4955 COMMAND
5056 "${PYTHON_EXECUTABLE} "
51- ${CMAKE_CURRENT_SOURCE_DIR} / runtime/api/gen_vulkan_spv.py --glsl- path
52- ${shaders_path} --output -path ${VULKAN_SHADERGEN_OUT_PATH}
57+ ${EXECUTORCH_ROOT} /backends/vulkan/ runtime/api/gen_vulkan_spv.py
58+ --glsl- path ${shaders_path} --output -path ${VULKAN_SHADERGEN_OUT_PATH}
5359 --glslc-path =${GLSLC_PATH} --tmp-dir-path =${VULKAN_SHADERGEN_OUT_PATH}
5460 --env ${VULKAN_GEN_ARG_ENV}
5561 RESULT_VARIABLE error_code
5662 )
57- set (ENV{PYTHONPATH} ${PYTHONPATH} )
63+
64+ set (generated_spv_cpp
65+ ${VULKAN_SHADERGEN_OUT_PATH} /spv.cpp
66+ PARENT_SCOPE
67+ )
68+ endfunction ()
69+
70+ function (vulkan_shader_lib library_name generated_spv_cpp)
71+ add_library (${library_name} STATIC ${generated_spv_cpp} )
72+ target_include_directories (
73+ ${library_name}
74+ PRIVATE
75+ ${EXECUTORCH_ROOT} /..
76+ ${EXECUTORCH_ROOT} /backends/vulkan/third-party/Vulkan-Headers/include
77+ ${EXECUTORCH_ROOT} /backends/vulkan/third-party/volk
78+ )
79+ target_link_libraries (${library_name} vulkan_backend)
80+ target_compile_options (${library_name} PRIVATE ${VULKAN_CXX_FLAGS} )
81+ # Link this library with --whole-archive due to dynamic shader registrations
82+ target_link_options_shared_lib(${library_name} )
83+ endfunction ()
84+
85+ # Convenience macro to generate a SPIR-V shader library target. Given the path
86+ # to the shaders to compile and the name of the library, it will create a static
87+ # library containing the generated SPIR-V shaders. The generated_spv_cpp
88+ # variable can be used to reference the generated CPP file outside the macro.
89+ macro (vulkan_shader_library shaders_path library_name)
90+ set (VULKAN_SHADERGEN_ENV "" )
91+ set (VULKAN_SHADERGEN_OUT_PATH ${CMAKE_BINARY_DIR} /${library_name} )
92+
93+ # execute_process( COMMAND "${PYTHON_EXECUTABLE}"
94+ # ${EXECUTORCH_ROOT}/backends/vulkan/runtime/api/gen_vulkan_spv.py --glsl-path
95+ # ${shaders_path} --output-path ${VULKAN_SHADERGEN_OUT_PATH}
96+ # --glslc-path=${GLSLC_PATH} --tmp-dir-path=${VULKAN_SHADERGEN_OUT_PATH} --env
97+ # ${VULKAN_GEN_ARG_ENV} RESULT_VARIABLE error_code ) set(ENV{PYTHONPATH}
98+ # ${PYTHONPATH})
5899
59100 set (generated_spv_cpp ${VULKAN_SHADERGEN_OUT_PATH} /spv.cpp)
60101
61102 add_library (${library_name} STATIC ${generated_spv_cpp} )
62- target_include_directories (${library_name} PRIVATE ${COMMON_INCLUDES} )
63- target_link_libraries (${library_name} vulkan_graph_lib)
103+ target_include_directories (
104+ ${library_name}
105+ PRIVATE
106+ ${EXECUTORCH_ROOT} /..
107+ ${EXECUTORCH_ROOT} /backends/vulkan/third-party/Vulkan-Headers/include
108+ ${EXECUTORCH_ROOT} /backends/vulkan/third-party/volk
109+ )
110+ target_link_libraries (${library_name} vulkan_backend)
64111 target_compile_options (${library_name} PRIVATE ${VULKAN_CXX_FLAGS} )
65112 # Link this library with --whole-archive due to dynamic shader registrations
66113 target_link_options_shared_lib(${library_name} )
0 commit comments