@@ -12,13 +12,17 @@ if(NOT EXECUTORCH_ROOT)
1212 set (EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR} /../..)
1313endif ()
1414
15- add_compile_options ("-Wall" "-Werror" )
16-
1715include (${EXECUTORCH_ROOT} /tools/cmake/Utils.cmake)
1816
1917set (_common_include_directories ${EXECUTORCH_ROOT} /.. ${EXECUTORCH_ROOT} /runtime/core/portable_type/c10)
2018add_compile_definitions (C10_USING_CUSTOM_GENERATED_MACROS)
2119
20+
21+ # bare metal backend builds
22+ if (EXECUTORCH_BUILD_ARM_BAREMETAL)
23+
24+ add_compile_options ("-Wall" "-Werror" )
25+
2226# Third-party folder and Ethos-U driver inclued
2327set (THIRD_PARTY_ROOT "${CMAKE_CURRENT_SOURCE_DIR} /third-party" )
2428set (DRIVER_ETHOSU_INCLUDE_DIR "${THIRD_PARTY_ROOT} /ethos-u-core-driver/include" )
@@ -36,3 +40,47 @@ target_include_directories(
3640target_include_directories (
3741 executorch_delegate_ethos_u PUBLIC ${DRIVER_ETHOSU_INCLUDE_DIR}
3842)
43+
44+ # end config for bare metal builds
45+ endif ()
46+
47+
48+ # VGF backend builds
49+ if (EXECUTORCH_BUILD_VGF)
50+
51+ # include libvgf
52+ set (LIBVGF_PATH "${EXECUTORCH_ROOT} /examples/arm/ethos-u-scratch/ml-sdk-for-vulkan-manifest/sw/vgf-lib/" )
53+
54+ set (VULKAN_THIRD_PARTY_PATH ${EXECUTORCH_ROOT} /backends/vulkan/third-party)
55+ set (VULKAN_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH} /Vulkan-Headers/include )
56+ set (VOLK_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH} /volk)
57+
58+ set (LIBVGF_STATIC "${LIBVGF_PATH} /build/src/libvgf.a" )
59+ set (LIBVGF_INCLUDE "${LIBVGF_PATH} /include/" )
60+
61+ add_library (vgf STATIC IMPORTED )
62+ set_property ( TARGET vgf PROPERTY IMPORTED_LOCATION "${LIBVGF_STATIC} " )
63+ target_include_directories (vgf INTERFACE "${LIBVGF_INCLUDE} " )
64+
65+ # Add backend delegate for VGF
66+ set (_vgf_backend_sources backends/arm/runtime/VGFBackend.cpp
67+ backends/arm/runtime/VGFSetup.cpp )
68+
69+ # vgf backend
70+ list (TRANSFORM _vgf_backend_sources PREPEND "${EXECUTORCH_ROOT} /" )
71+ add_library (vgf_backend ${_vgf_backend_sources} )
72+ target_include_directories (
73+ vgf_backend PUBLIC
74+ ${_common_include_directories}
75+ ${VULKAN_HEADERS_PATH}
76+ ${VOLK_HEADERS_PATH}
77+ )
78+ target_compile_options (vgf_backend PRIVATE -DUSE_VULKAN_WRAPPER -DUSE_VULKAN_VOLK)
79+
80+
81+ target_link_libraries (vgf_backend PRIVATE executorch_core)
82+ target_link_libraries (vgf_backend PRIVATE vgf)
83+ executorch_target_link_options_shared_lib(vgf_backend)
84+
85+ # end config for VGF builds
86+ endif ()
0 commit comments