| 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) |
| add_custom_command( |
| OUTPUT |
| ${_TEST_SRC} |
| DEPENDS |
| ${CMAKE_CURRENT_SOURCE_DIR}/templates/${_LOWER_OPFMT}_test.tpl.cpp |
| COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_vector_tests.py |
| --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() |