blob: b51f974b86c8ee3308b11f869f829e9717dedec2 [file] [log] [blame]
function(vec_cc_generated_test)
cmake_parse_arguments(
_RULE
""
"NAME"
"OPFMT;LINKOPTS;TIMEOUT"
${ARGN}
)
set(_OPCODE "${_RULE_NAME}")
foreach(_OPFMT ${_RULE_OPFMT})
string(TOLOWER ${_OPFMT} _LOWER_OPFMT)
set(_TEST_SRC ${CMAKE_CURRENT_BINARY_DIR}/generated/${_OPCODE}/${_OPCODE}_${_LOWER_OPFMT}_test.cpp)
find_file(_GEN_VEC_SCRIPT generate_vector_tests.py ${CMAKE_SOURCE_DIR}/scripts)
add_custom_command(
OUTPUT
${_TEST_SRC}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/templates/${_LOWER_OPFMT}_test.tpl.cpp
COMMAND python3 ${_GEN_VEC_SCRIPT}
--template-path=${CMAKE_CURRENT_SOURCE_DIR}/templates/
--instruction-format ${_OPFMT}
--op-code ${_OPCODE}
--out-path=${CMAKE_CURRENT_BINARY_DIR}/generated/${_OPCODE}
)
list (APPEND _TEST_SRCS "${_TEST_SRC}")
endforeach()
vec_cc_test(
NAME
${_OPCODE}_test
SRCS
${_TEST_SRCS}
LINKOPTS
${_RULE_LINKOPTS}
TIMEOUT
${_RULE_TIMEOUT}
)
endfunction()