@@ -17,7 +17,7 @@ set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
1717
1818include (${EXECUTORCH_ROOT} /tools/cmake/Test .cmake)
1919
20- set (_kernels portable optimized quantized)
20+ set (_kernels portable optimized_portable optimized quantized)
2121foreach (kernel ${_kernels} )
2222 set (_wrapper_dir
2323 "${CMAKE_CURRENT_BINARY_DIR} /include/${kernel} /executorch/kernels/test"
@@ -37,13 +37,17 @@ foreach(kernel ${_kernels})
3737 VERBATIM
3838 )
3939
40+ set (_supported_features_kernel ${kernel} )
41+ if (${kernel} STREQUAL "optimized_portable" )
42+ set (_supported_features_kernel "portable" )
43+ endif ()
4044 add_custom_command (
4145 OUTPUT "${_wrapper_dir} /supported_features.cpp"
4246 "${_wrapper_dir} /supported_features.h"
4347 COMMAND mkdir -p ${_wrapper_dir}
4448 COMMAND
4549 ${PYTHON_EXECUTABLE} kernels/test /gen_supported_features.py
46- kernels/${kernel } /test /supported_features_def.yaml >
50+ kernels/${_supported_features_kernel } /test /supported_features_def.yaml >
4751 ${_wrapper_dir} /supported_features.cpp
4852 COMMAND
4953 ${PYTHON_EXECUTABLE} kernels/test /gen_supported_features.py
@@ -57,6 +61,11 @@ foreach(kernel ${_kernels})
5761 set (_kernel_ops_lib "optimized_native_cpu_ops_lib" )
5862 set (_kernel_ops_lib_path
5963 "${CMAKE_CURRENT_BINARY_DIR} /../../configurations/optimized_native_cpu_ops_lib"
64+ )
65+ elseif (${kernel} STREQUAL "optimized_portable" )
66+ set (_kernel_ops_lib "${kernel} _ops_lib" )
67+ set (_kernel_ops_lib_path
68+ "${CMAKE_CURRENT_BINARY_DIR} /../../kernels/portable/${kernel} _ops_lib"
6069 )
6170 else ()
6271 set (_kernel_ops_lib "${kernel} _ops_lib" )
@@ -88,6 +97,9 @@ add_custom_target(
8897 "${CMAKE_CURRENT_BINARY_DIR} /include/optimized/executorch/kernels/test/FunctionHeaderWrapper.h"
8998 "${CMAKE_CURRENT_BINARY_DIR} /include/optimized/executorch/kernels/test/supported_features.h"
9099 "${CMAKE_CURRENT_BINARY_DIR} /include/optimized/executorch/kernels/test/supported_features.cpp"
100+ "${CMAKE_CURRENT_BINARY_DIR} /include/optimized_portable/executorch/kernels/test/FunctionHeaderWrapper.h"
101+ "${CMAKE_CURRENT_BINARY_DIR} /include/optimized_portable/executorch/kernels/test/supported_features.h"
102+ "${CMAKE_CURRENT_BINARY_DIR} /include/optimized_portable/executorch/kernels/test/supported_features.cpp"
91103 "${CMAKE_CURRENT_BINARY_DIR} /include/quantized/executorch/kernels/test/FunctionHeaderWrapper.h"
92104 "${CMAKE_CURRENT_BINARY_DIR} /include/quantized/executorch/kernels/test/supported_features.h"
93105 "${CMAKE_CURRENT_BINARY_DIR} /include/quantized/executorch/kernels/test/supported_features.cpp"
@@ -297,6 +309,22 @@ set(_optimized_kernels_test_sources
297309if (TARGET optimized_portable_kernels)
298310 list (APPEND _optimized_kernels_test_sources ${all_test_sources} )
299311 list (REMOVE_DUPLICATES _optimized_kernels_test_sources)
312+
313+ # Make sure that we still test optimized versions of portable
314+ # kernels even if they would currently be shadowed by specific
315+ # optimized implementations.
316+ et_cxx_test(
317+ optimized_portable_kernels_test
318+ SOURCES
319+ ${all_test_sources}
320+ ${CMAKE_CURRENT_BINARY_DIR} /include /optimized_portable/executorch/kernels/test /supported_features.cpp
321+ EXTRA_LIBS
322+ optimized_portable_kernels
323+ )
324+ add_dependencies (optimized_portable_kernels_test generate_wrapper)
325+ target_include_directories (
326+ optimized_portable_kernels_test PRIVATE "${CMAKE_CURRENT_BINARY_DIR} /include/optimized_portable"
327+ )
300328endif ()
301329
302330et_cxx_test(
0 commit comments